嗨,我希望使用Eloquent来加入三个Eloquent模型,以便从将在assigned_project_board_statuses
中举行的project
中检索指定的statuses
name
。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;
app/模型/Project.php
public function assignedProjectBoardStatuses() {
return $this->hasMany('AssignedProjectBoardStatus','project_id')->orderBy('order','asc');
}
app/模型/AssignedProjectBoardStatus.php
public function projects() {
return $this->belongsTo('Project');
}
public function statuses() {
return $this->belongsTo('Status');
}
app/模型/Status.php
public function assignedProjectBoardStatus() {
return $this->hasMany('AssignedProjectBoardStatus');
}
如果我想检索name
和订单字段,那么我可以扩展它来加入status
模型,有什么想法吗?
您可以快速加载所有相关模型:
$project = Project::with(['assignedProjectBoardStatuses', 'assignedProjectBoardStatuses.statuses'])->find(3);
现在您可以访问 assigndprojectboardstatus 中的集合
$project->assignedProjectBoardStatuses
你可以使用
访问状态$project->assignedProjectBoardStatuses[0]->status