在 Laravel 中总结查询

问题描述 投票:0回答:1

$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();

在我的应用程序中,我有一些模型,关系是

  1. 用户今天有许多分配的路线计划。
  2. 今天分配的路线计划属于某个地区
  3. 境内有很多分店。

我想检索每个用户的 TodaysAssignedRoutePlans 数量和出口数量。

到目前为止,我得到了 TodaysAssignedRoutePlans 编号,但无法汇总每个用户不同地区的所有出口...

我的代码给出了按地区划分的出口数量。但我想总结一下用户的感受...

非常感谢您的帮助。

php mysql laravel
1个回答
0
投票

这就是我定义模型的方式:

用户模型

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() 
© www.soinside.com 2019 - 2024. All rights reserved.