在belongsToMany中设置字段名称的位置?

时间:2017-12-06 08:19:58

标签: php laravel laravel-5 eloquent relationship

我有三个模型:<html> <head> <script> function myFunction(id) { var str1 = "somepictureurl.png"; document.getElementById(id).src = str1; } </script> </head> <body> <img id="img1" alt="notworking"> <script> myFunction("img1"); </script> </body> </html> PostList(Pivot)。 我在DB中有三个表:PostListpost (post_id, ...)list(list_id, ...)

我有这样的代码:

发布 -

post_list(post_id, glist_id(In fact it's id of list))

列表 -

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

PostList

public function stories()

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

使用这样的代码,Laravel尝试在PostList中找到glist_id。

在关系的哪一部分,我必须设置表PostList中的那列不是默认的list_id,而是glist_id?

1 个答案:

答案 0 :(得分:2)

the documentation

  

第三个参数是您所在模型的外键名称   正在定义关系,而第四个论点是   您要加入的模型的外键名称。

所以在你的情况下,这将是:

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');
}