Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
laravel:relationships [2015/06/17 15:32] webproducer angelegt |
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: ===== | + | |
- | + | ||
- | 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> | + |