gpt4 book ai didi

laravel - 按计数对 Laravel Nova 分区结果进行排序

转载 作者:行者123 更新时间:2023-12-05 04:04:48 25 4
gpt4 key购买 nike

我有一个带有属性模型的新 Laravel Nova 安装。属性具有“国家/地区”属性,我想在“国家/地区”列上显示分区指标。

public function calculate(Request $request)
{
return $this->count($request, Property::class, 'country','country');
}

一切正常,但它仅按国家/地区的字母顺序排序,而不是按计数降序排列,这样更有意义。

有没有办法对输出进行排序?

最佳答案

你可以做的是:

public function calculate(Request $request)
{
return $this->count($request, Property::orderBy('aggregate', 'desc'), 'country','country');
}

更多信息:
Nova 将按如下方式构建查询 (nova/src/Metrics/Partition.php@aggregate):

 $results = $query->select(
$groupBy, DB::raw("{$function}({$wrappedColumn}) as aggregate")
)->groupBy($groupBy)->get();
  • $query 是模型 Property::orderBy(...) 的给定 Builder 实例,或者当您传递模型 时,Nova 会为您生成它>属性::类
  • $function 将是方法 (count, min, max...)
  • $wrappedColumn 将是给定的列(在您的情况下是国家/地区)
  • $groupBy 将按列(国家/地区)给出给定的组......好吧,你明白了

最后它将构建:

$results = Property::orderBy('aggregate', 'desc')->select(
'country', DB::raw("count(country) as aggregate")
)->groupBy('country')->get();

关于laravel - 按计数对 Laravel Nova 分区结果进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52038166/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com