在Laravel中从收集结果中获取相关数据

时间:2019-04-18 22:50:04

标签: php laravel eloquent

我通过公司ID检索了位置的集​​合。一个公司可以有许多位置。现在,我正在尝试从某个位置检索人员。一个地点可以有许多工作人员。

  • 模型:Firm-hasMany关系函数,称为:firmLocations
  • 模型:Location-名为Firm的归属关系函数。还有一个名为Staff的hasMany函数。
  • 模型:Staff-名为Location的归属关系函数。

Staff模型仅与Location模型相关。

代码在控制器的显示功能中。

我现在想,我有一家特定公司的相关地点,我可以使用该集合来获取工作人员。但是,我遇到了障碍,我们将不胜感激。谢谢。

public function showFirm($id)
{
    // Get locations of a firm by id
    $firm_locations = Firm::find($id)->firmLocations;
}

1 个答案:

答案 0 :(得分:1)

您可以根据位置以及公司检索员工。

public function showFirm($id) {

    // Get locations of a firm by id with staff member from location

    $firm_locations = Firm::where('id',$id)->with('firmLocations.staff')->first();

    // Above function retrieve Firm with Location and Location will have staff.
}

我假设您已经正确建立了关系并且您已经掌握了关系知识。