在查询生成器中使用分页时显示错误

时间:2018-06-27 05:43:13

标签: laravel eloquent

我有一个类似以下的查询,它按预期运行。我在这里使用了havingRaw选项来过滤结果。

$customers = Customer::select(DB::raw("`name`, `mobile`, `branch`, count(*) as total_orders"))
    ->groupBy('mobile')
    ->havingRaw('total_orders > 12')
    ->orderBy('total_orders', 'desc')
    ->get();

由于返回的行总数会有所不同,因此我需要将其显示为分页。所以我更改了查询,如下所示。然后显示错误,提示找不到total_orders列。

$customers = Customer::select(DB::raw("`name`, `mobile`, `branch`, count(*) as total_orders"))
    ->groupBy('mobile')
    ->havingRaw('total_orders > 12')
    ->orderBy('total_orders', 'desc')
    ->paginate();

我发现了Laravel早期版本的一些解决方法。我在我的项目中使用Laravel 5.6,对此有什么解决方案吗?

1 个答案:

答案 0 :(得分:0)

尝试一下。

$customers = Customer::select(DB::raw("`name`, `mobile`, `branch`, count(*) as 
  total_orders"))
 ->groupBy('mobile')
 ->having('total_orders','>', 12)
 ->orderBy('total_orders', 'desc')->get();