2017-12-06 3 views
0

Ich habe drei Modelle: Post, List und PostList (Pivot). I DB Ich habe drei Tabellen: post (post_id, ...), list(list_id, ...), post_list(post_id, glist_id(In fact it's id of list)).Wo Namen der Felder in "anglesomeToMany" festgelegt?

Ich habe einen solchen Code:

Post -

public function list() 
{ 
    return $this->belongsToMany(List::class, 'post_list'); 
} 

List -

public function stories() 

{ 
    return $this->belongsToMany(Post::class, 'post_list'); 
} 

PostList

public function post() 
    { 
     return $this->belongsTo(Post::class); 
    } 

    public function list() 
    { 
     return $this->belongsTo(list::class); 
    } 

Mit einem solchen Code Laravel versuchen glist_id in PostList finden.

In welchen Teil der Relationen muss ich diese Spalte in der Tabelle PostList nicht Standard list_id, aber glist_id?

Antwort

2

Per the documentation:

Das dritte Argument ist der Fremdschlüssel Name des Modells, auf das Sie die Beziehung definieren, während das vierte Argument der Fremdschlüssel Name des Modells ist, dass Sie verbinden sind zu.

Also in Ihrem Fall wäre dies:

public function list() 
{ 
    return $this->belongsToMany(List::class, 'post_list', 'post_id', 'glist_id'); 
} 

public function stories() 
{ 
    return $this->belongsToMany(Post::class, 'post_list', 'glist_id', 'post_id'); 
} 
Verwandte Themen