我正在使用Laravel Nova生成指标,在这种情况下特别是趋势。这是我的代码:
$builder = order::query()->select('cook_id')->distinct();
return $this->countByDays($request, $builder)->showLatestValue();
但是这将返回6-但应为4。
是的,有6行,但其中有4行具有相同的“ cook_id”,因此唯一调用应消除其中的2行。
重申一下,这是Laravel Nova的“趋势”指标。
谢谢
答案 0 :(得分:0)
尝试使用groupBy
$builder = order::distinct()->select('cook_id')->groupBy('cook_id')->get();
也在database.php
中将mysql严格设置为false
'mysql' => [
...
'strict' => false
]
答案 1 :(得分:0)
我知道这是一个旧帖子,但对于任何有同样问题的人,您可以使用原始表达式来允许不同的查询。
public function calculate(NovaRequest $request)
{
return $this->aggregate($request,
order::class,
self::BY_DAYS,
'count',
DB::raw('distinct cook_id'),
);
}
通过使用 DB::raw,nova 将按原样接受该列,而不会尝试包装它。