$users = User::select('id', 'name','code')
->with(['todaysAssignedRoutePlans' => function ($q) use ($outletIds) {
$q->select('id', 'name', 'territory_id', 'assigned_to')
->with(['territory' => function ($q) use ($outletIds) {
$q->withCount(['outlets as distinct_outlets' => function ($q) use ($outletIds) {
$q->whereIn('id', $outletIds)->distinct();
}]);
}]);
}])
->withCount(['todaysAssignedRoutePlans as total_route'])
->get();
在我的应用程序中,我有一些模型,关系是
我想检索每个用户的 TodaysAssignedRoutePlans 数量和出口数量。
到目前为止,我得到了 TodaysAssignedRoutePlans 编号,但无法汇总每个用户不同地区的所有出口...
我的代码给出了按地区划分的出口数量。但我想总结一下用户的感受...
非常感谢您的帮助。
这就是我定义模型的方式:
用户模型
public function today_assigned_route_plans() {
return $this->hasMany(todaysAssignedRoutePlans::class);
}
todaysAssignedRoutePlans 模型
public function territory() {
return $this->belongsTo(Territory::class);
}
领土模型
public function outlets() {
return $this->hasMany(Outlet::class);
}
在您的控制器中定义这些关系后,或者无论您从哪里调用用户,您所要做的就是使用这些定义。
$users = User::with('today_assigned_route_plans', 'today_assigned_route_plans.territory', 'today_assigned_route_plans.territory.outlets')->get()