You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从指定$department用户集合中获取关联的Journal关系数据

解决方案

有两种实现方式,可根据你的实际业务场景选择:

方案1:基于已获取的部门用户集合查询

如果你已经提前拿到了部门用户集合,直接提取用户ID做筛选即可:

// 从已有部门用户集合提取所有用户ID
$userIds = $department->pluck('id');

$users = User::whereIn('id', $userIds)
    ->where('name', '<>', 'Manager')
    ->with(['journal' => function($query) use ($request){
        $query->where('schedule', 'like', "%" . $request->date . "%");
    }])->get();

方案2:优化查询,无需提前查询部门用户集合

如果不需要单独使用提前获取的$department用户集合,推荐用这种方式减少SQL查询次数,性能更高:

$users = User::where('department_id', 1)
    ->where('name', '<>', 'Manager')
    ->with(['journal' => function($query) use ($request){
        $query->where('schedule', 'like', "%" . $request->date . "%");
    }])->get();

也可以从Department模型出发用关联查询写法:

$department = Department::with(['users' => function($userQuery) use ($request) {
    $userQuery->where('name', '<>', 'Manager')
        ->with(['journal' => function($journalQuery) use ($request) {
            $journalQuery->where('schedule', 'like', "%" . $request->date . "%");
        }]);
}])->find(1);

// 直接取属性即可拿到带Journal关联数据的部门用户
$usersWithJournal = $department->users;

内容的提问来源于stack exchange,提问作者Васили

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 04:48:00