嗨我希望使用Eloquent加入三个Eloquent模型,以便从将在assigned_project_board_statuses中保存的项目中检索指定的状态名称. assigned_project_board_statuses表有两个表模式如下所示的外键:
ID | PROJECT_ID | STATUS_ID |订单| created_at |的updated_at
project_id和status_id是外键.
我的模型是:
项目(表名项目),状态(表名:状态)和AssignedProjectBoardStatus(表名:assigned_project_board_statuses).
我可以通过执行以下操作检索已分配的项目状态:
项目::发现(3) – > assignedProjectBoardStatuses;
应用程序/模型/ Project.PHP
public function assignedProjectBoardStatuses() { return $this->hasMany('AssignedProjectBoardStatus','project_id')->orderBy('order','asc'); }
应用程序/模型/ AssignedProjectBoardStatus.PHP
public function projects() { return $this->belongsTo('Project'); } public function statuses() { return $this->belongsTo('Status'); }
应用程序/模型/ Status.PHP
public function assignedProjectBoardStatus() { return $this->hasMany('AssignedProjectBoardStatus'); }
任何想法我如何扩展这也加入状态模型,因为我想要检索名称和订单字段?
解决方法
您可以急切加载所有相关模型:
$project = Project::with(['assignedProjectBoardStatuses','assignedProjectBoardStatuses.statuses'])->find(3);
现在您可以访问AssignedProjectBoardStatus的集合了
$project->assignedProjectBoardStatuses
并且每个人都可以使用状态访问状态
$project->assignedProjectBoardStatuses[0]->status