Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
| Both sides previous revision Vorhergehende Überarbeitung | |||
|
laravel:relationships [2019/09/04 22:17] webproducer Beispiel erweitert |
laravel:relationships [2019/10/08 16:15] (aktuell) webproducer Beispiele auf Unterseiten ausgelagert |
||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| ====== Beziehungen zwischen Tabellen und Objekten ====== | ====== Beziehungen zwischen Tabellen und Objekten ====== | ||
| - | ^ Beziehungs-Typ ^ Fremdschlüssel ^ Methode | | + | ^ Beziehungs-Typ ^ Fremdschlüssel ^ Methode im Model| |
| | 1:1 | in eigene Tabelle | belongsTo | | | 1:1 | in eigene Tabelle | belongsTo | | ||
| | 1:1 | in Fremdtabelle | hasOne | | | 1:1 | in Fremdtabelle | hasOne | | ||
| - | | 1:n | in eigene Tabelle | hasMany | | + | | 1:n | in eigene Tabelle | [[hasMany]] | |
| | 1:n | in Fremdtabelle | belongsTo | | | 1:n | in Fremdtabelle | belongsTo | | ||
| - | | n:m | in eigene Tabelle | belongsToMany | | + | | n:m | in eigene Tabelle | [[belongsToMany]] | |
| - | | n:m | in Fremdtabelle | belongsToMany | | + | | n:m | in Fremdtabelle | [[belongsToMany]] | |
| - | + | ||
| - | ===== Beispiel: ===== | + | |
| - | + | ||
| - | Für dieses Beispiel muss die Tabelle "user" über ein Integer-Feld "Hobby_id" verfügen und die Tabelle "Hobbies" muss ein Integer-Feld namens "user_id" besitzen. | + | |
| - | + | ||
| - | + | ||
| - | + | ||
| - | Ein User kann mehrere Hobbys haben: | + | |
| - | + | ||
| - | <file php Hobby.php> | + | |
| - | namespace Model; | + | |
| - | + | ||
| - | use Illuminate\Database\Eloquent\Model as Eloquent; | + | |
| - | + | ||
| - | class Hobby extends Eloquent | + | |
| - | { | + | |
| - | + | ||
| - | public $table = 'hobbies'; | + | |
| - | + | ||
| - | public function users() | + | |
| - | { | + | |
| - | return $this->hasMany('\Model\User'); | + | |
| - | } | + | |
| - | } | + | |
| - | </file> | + | |
| - | + | ||
| - | <file php users.php> | + | |
| - | namespace Model; | + | |
| - | + | ||
| - | use Illuminate\Database\Eloquent\Model as Eloquent; | + | |
| - | + | ||
| - | class User extends Eloquent | + | |
| - | { | + | |
| - | + | ||
| - | public function hobbies() | + | |
| - | { | + | |
| - | return $this->belongsToMany('\Model\Hobby'); | + | |
| - | } | + | |
| - | } | + | |
| - | </file> | + | |
| - | + | ||
| - | Neues Hobby anlegen und einem User zuordnen | + | |
| - | + | ||
| - | <code php> | + | |
| - | $Hobby = new Hobby( array( 'name', 'Tischtennis' ) ); | + | |
| - | $user = User::where( 'vorname' => 'sven' ); | + | |
| - | $user->Hobbies->save( $user ); | + | |
| - | + | ||
| - | </code> | + | |