首页 文章

Eloquent属于ToMany withPivot mapping

提问于
浏览
0

我继承了4个MySQL表:

listings
-ID
-描述
...

locations
-ID
-listing_id

guides
-ID
-名称
....

guide_location
-ID
-guide_id
-location_id

列表=>(很多)位置
指南=>(很多)地点=>(1)清单

列表,位置和指南都是Laravel Dingo应用程序中自己的模型 . 这是设置:

//Listing model
public function locations()
{
    return $this->hasMany('Location');
}

然后

//Location model
public function guides()
{
    return $this->belongsToMany('Guide');
}
public function listing()
{
    return $this->belongsTo('Listing');
}

//Guide model
public function locations()
{
    return $this->belongsToMany('Location');
}

我已经为 guide_location 添加了一个列,当我从数据库中选择一个指南时,我想返回它 .

所以现在:

guide_location
-ID
-guide_id
-location_id
-位置

我尝试在指南和位置模型中的 belongsToMany() 语句中添加 ->withPivot('position') ,但是它没有看到新列 .

我有什么想法我做错了吗?

1 回答

  • 0

    好的, ->withPivot() 正在工作,我只是没有看到结果,因为它在 location.pivot.position ,而不是 location.position . 哑 .

    希望这有助于其他人 .

相关问题