【发布时间】:2022-01-08 03:17:56
【问题描述】:
我正在尝试重新制作此查询:
return DB::select(DB::raw("SELECT COUNT(orders.id), name FROM orders JOIN users ON orders.manager_id = users.id GROUP BY users.id"));
我有Order 模型,它使用belongsTo() 方法链接到另一个表,其中有几个:
public function user()
{
return $this->belongsTo(User::class);
}
public function post()
{
return $this->belongsTo(Post::class);
}
public function manager()
{
return $this->belongsTo(User::class, 'manager_id');
}
当我使用像 Order::all() 这样的简单查询时,它可以正常工作,但我尝试调用它:
return Order::groupBy('users.id')
->selectRaw('COUNT(orders.id), name')
->get();
当然,Laravel 不知道我应该使用用户名还是管理员名,因为它与 Order 中的 users 表是两个关系。我应该如何正确编写上面的查询?
【问题讨论】: