【发布时间】:2019-07-26 00:38:50
【问题描述】:
我有 3 个模型。
- 项目 {id, name}
- 平台 {id, name}
- 版本 {id, value}
一个项目可以有多个平台,每个平台可以有多个版本在一个项目中。我有下表与模型相关:
如您所见,Project 6 在平台 1 上具有版本 1 和 3,而 Project 8 在同一平台上具有版本 1 和 2。
我想根据项目获取所有项目的平台和这些平台的版本。
例如,我想做
App\Project::find(6)->platform()->with('version')->get();
并在我的这个项目平台 1 的版本集合中仅获取 id 为 1 和 3 的版本。
这就是我在项目模型中的内容:
public function platform()
{
return $this->belongsToMany('App\Platform')->withPivot('version_id')->distinct();
}
这就是我在平台模型中所拥有的:
public function version()
{
return $this->belongsToMany('App\Version', 'platform_project')->distinct();
}
您能帮我找出达到预期结果的最佳方法吗?
【问题讨论】:
标签: php laravel laravel-5 eloquent relationship