Laravel Nova-独特的问题

时间:2018-10-22 21:53:29

标签: laravel laravel-nova

我正在使用Laravel Nova生成指标,在这种情况下特别是趋势。这是我的代码:

$builder = order::query()->select('cook_id')->distinct();
return $this->countByDays($request, $builder)->showLatestValue();

但是这将返回6-但应为4。

是的,有6行,但其中有4行具有相同的“ cook_id”,因此唯一调用应消除其中的2行。

重申一下,这是Laravel Nova的“趋势”指标。

谢谢

2 个答案:

答案 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 将按原样接受该列,而不会尝试包装它。