php – Laravel eloquent使用find加入三个连接

前端之家收集整理的这篇文章主要介绍了php – Laravel eloquent使用find加入三个连接前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
嗨我希望使用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

猜你在找的Laravel相关文章