您好我希望使用Eloquent加入三个Eloquent模型,以便从statuses
中检索指定的name
project
assigned_project_board_statuses
。 assigned_project_board_statuses
表有两个表模式的外键:
id|project_id|status_id|order|created_at|updated_at
project_id
和status_id
是外键。
我的模特是:
Project
(表名projects
),Status
(表名:statuses
)和AssignedProjectBoardStatus
(表名:assigned_project_board_statuses
)。
我可以通过执行以下操作来检索已分配的项目状态:
Project::find(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');
}
我是否可以将此扩展为加入status
模型的任何想法,因为我希望检索name
和订单字段?
答案 0 :(得分:3)
您可以急切地加载所有相关模型:
$project = Project::with(['assignedProjectBoardStatuses', 'assignedProjectBoardStatuses.statuses'])->find(3);
现在您可以访问中 AssignedProjectBoardStatus 的集合
并且每个人都可以使用$project->assignedProjectBoardStatuses
$project->assignedProjectBoardStatuses[0]->status