У меня есть 3 модели.
- Project {id, name}
- Platform {id, name}
- Версия {id, value}
Один проект может иметь несколько платформ, и каждая платформа может иметь несколько версий в рамках проекта .У меня есть следующая таблица, которая касается моделей:
Как вы можете видеть, Project 6 имеет версии 1 и 3 на платформе 1, а Project 8 имеетверсии 1 и 2. на одной и той же платформе.
Я хочу получить все платформы проектов и версии этих платформ в зависимости от проекта.
Например, я хотел бы сделать
App\Project::find(6)->platform()->with('version')->get();
и получите только версии с идентификаторами 1 и 3 в моей коллекции версий платформы 1 этого проекта.
Это то, что у меня есть в Project Model:
public function platform()
{
return $this->belongsToMany('App\Platform')->withPivot('version_id')->distinct();
}
Это то, что у меня есть в модели платформы:
public function version()
{
return $this->belongsToMany('App\Version', 'platform_project')->distinct();
}
Не могли бы вы помочь мне найти лучший способ достичь желаемого результата?