过滤多次查询的雄辩关系

时间:2018-01-30 13:10:40

标签: laravel eloquent

我有 用户,部门,职位,表。

用户属于许多部门 部门有很多职位 用户属于许多职位

我想要一个查询,它会为单个部门提供用户列表及其在该部门中的位置。

    $department = DepartmentView::with(['users.positions' => function($query) {
                        // do something?
                        }])->where('tag', $tag)
                        ->get();

我也通过标签获得部门,而不是ID。 位置表没有标记列,只有部门ID。

-

我可以通过定义静态ID来使其工作,但问题是我通过标签获得部门。

public function getDepartmentByTag($tag) {
$departmentId = 1; FOR TESTING PURPOSE, IT WORKS
$department = DepartmentView::with(['users.positions' => function($query) use($departmentId) {
                            $query->whereHas('department', function($query) use($departmentId) {
                                $query->where('departmentId', $departmentId);
                            });
                        }])->where('tag', $tag)
                        ->get();
}

1 个答案:

答案 0 :(得分:0)

  

我想只获取部门中的用户职位

DepartmentView::with(['users.positions' => function($q) use($tag) {
        $q->whereHas('department', function($q) use($tag) {
            $q->where('tag', $tag);
        });
    }])
    ->get();