Php Laravel使用find雄辩地连接三个连接

Php Laravel使用find雄辩地连接三个连接,php,laravel,join,laravel-4,eloquent,Php,Laravel,Join,Laravel 4,Eloquent,您好,我希望使用Eloquent加入三个Eloquent模型,以便从项目中检索分配的状态名称,该项目将保存在分配的项目板状态中。assigned_project_board_status表有两个外键。表架构如下: id |项目| id |状态| id |订单|创建|更新|在 project\u id和status\u id是外键 我拥有的模型有: 项目(表名项目)、状态(表名:状态)和分配的项目板状态(表名:分配的项目板状态) 我可以通过执行以下操作检索分配给项目的状态: Project::fi

您好,我希望使用Eloquent加入三个Eloquent模型,以便从
项目
中检索分配的
状态
名称,该项目将保存在
分配的项目板状态
中。
assigned_project_board_status
表有两个外键。表架构如下:

id |项目| id |状态| id |订单|创建|更新|在

project\u id
status\u id
是外键

我拥有的模型有:

项目
(表名
项目
)、
状态
(表名:
状态
)和
分配的项目板状态
(表名:
分配的项目板状态

我可以通过执行以下操作检索分配给项目的状态:

Project::find(3)->assignedprojectboardstatus

app/models/Project.php

public function assignedProjectBoardStatuses() {
        return $this->hasMany('AssignedProjectBoardStatus','project_id')->orderBy('order','asc');
    }
app/models/AssignedProjectBoardStatus.php

public function projects() {
    return $this->belongsTo('Project');
}
public function statuses() {
    return $this->belongsTo('Status');
}
public function assignedProjectBoardStatus() {
        return $this->hasMany('AssignedProjectBoardStatus');
}
app/models/Status.php

public function projects() {
    return $this->belongsTo('Project');
}
public function statuses() {
    return $this->belongsTo('Status');
}
public function assignedProjectBoardStatus() {
        return $this->hasMany('AssignedProjectBoardStatus');
}

如果我想检索
名称
和订单字段,那么我可以如何扩展它以加入
状态
模型呢?

您可以急切地加载所有相关模型:

$project = Project::with(['assignedProjectBoardStatuses', 'assignedProjectBoardStatuses.statuses'])->find(3);
现在您可以访问中的AssignedProjectBoardStatus集合

$project->assignedProjectBoardStatuses
在每一个屏幕上,您都可以使用

$project->assignedProjectBoardStatuses[0]->status