繁体   English   中英

Laravel雄辩地使用find加入三个连接

[英]Laravel eloquent join three joins using find

嗨我希望使用Eloquent加入三个Eloquent模型,以便从将在assigned_project_board_statuses保存的project检索指定的statuses name assigned_project_board_statuses表有两个表模式如下所示的外键:

id|project_id|status_id|order|created_at|updated_at

project_idstatus_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和订单字段?

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

$project = Project::with(['assignedProjectBoardStatuses', 'assignedProjectBoardStatuses.statuses'])->find(3);

现在您可以访问AssignedProjectBoardStatus的集合了

$project->assignedProjectBoardStatuses

并且每个人都可以使用状态访问状态

$project->assignedProjectBoardStatuses[0]->status

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM