渴望加载与子查询连接的关系
Eager load a relationship with subquery join
我必须将与另一个 table 和 return 有关系的 table 加入到我的可读数据视图中,并为每个用户显示正确的数据。这是我在控制器中的代码。
这有效,但是关系中的数据丢失了,我做错了什么?
$GetUsers = User::groupBy('id');
$all = OngoingTasks::with(['tasksdata', 'taskstatus'])->joinSub($GetUsers, 'users', function ($join) {
$join->on('ongoing_tasks.user_id', '=', 'users.id');
})->get();
OngoingTasks 与 taskstatus 具有一对多关系,与 taskdata 具有一对一关系。
用户有一对多的 OngoingTasks。
如果 OngoingTask 属于一个用户,则在 OngoingTask
模型中添加:
public function user()
{
return $this->belongsTo(User::class);
}
您可以将查询更改为:
OngoingTasks::with(['tasksdata', 'taskstatus', 'user'])->get();
如果你想根据用户 ID 获取 OngoingTasks,即使上面的方法会做同样的事情,但以防万一你过滤几个用户,改为这样做:
$userIds = User::pluck('id');
$all = OngoingTasks::with(['tasksdata', 'taskstatus', 'user'])->whereIn('user_id', $userIds)->get();
我必须将与另一个 table 和 return 有关系的 table 加入到我的可读数据视图中,并为每个用户显示正确的数据。这是我在控制器中的代码。
这有效,但是关系中的数据丢失了,我做错了什么?
$GetUsers = User::groupBy('id');
$all = OngoingTasks::with(['tasksdata', 'taskstatus'])->joinSub($GetUsers, 'users', function ($join) {
$join->on('ongoing_tasks.user_id', '=', 'users.id');
})->get();
OngoingTasks 与 taskstatus 具有一对多关系,与 taskdata 具有一对一关系。
用户有一对多的 OngoingTasks。
如果 OngoingTask 属于一个用户,则在 OngoingTask
模型中添加:
public function user()
{
return $this->belongsTo(User::class);
}
您可以将查询更改为:
OngoingTasks::with(['tasksdata', 'taskstatus', 'user'])->get();
如果你想根据用户 ID 获取 OngoingTasks,即使上面的方法会做同样的事情,但以防万一你过滤几个用户,改为这样做:
$userIds = User::pluck('id');
$all = OngoingTasks::with(['tasksdata', 'taskstatus', 'user'])->whereIn('user_id', $userIds)->get();