0

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

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

然而,这将返回 6 - 但它应该是 4。

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

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

谢谢

4

2 回答 2

1

我知道这是一篇旧帖子,但对于任何有同样问题的人,您可以使用原始表达式来允许不同的查询。

public function calculate(NovaRequest $request)
{

    return $this->aggregate($request,
        order::class,
        self::BY_DAYS,
        'count',
        DB::raw('distinct cook_id'),
    );
}

通过使用 DB::raw,nova 将按原样接受列,而不是尝试包装它。

于 2021-05-27T15:30:10.293 回答
0

尝试使用 groupBy

$builder = order::distinct()->select('cook_id')->groupBy('cook_id')->get();

也在database.phpset mysql strict tofalse

'mysql' => [
    ...
    'strict' => false
]
于 2018-10-23T06:46:58.180 回答