gpt4 book ai didi

laravel - 如何在 Laravel 5.3 中的 collect 中的 groupBy 之后使用 sortBy?

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

在使用 Eloquent 从 sql 获取查询后,我需要使用 collect 创建 groupBy('date')sortBy('price')Laravel 5.3 中。

IndexController 中:

$flights = Flights::GetFlights($fromCity, $toCity, $fromDate);

$collection = collect($flights);

$sortFlight = $collection->groupBy('date')->sortBy('price');

模型中:

public function scopeGetFlights($query, $fromCity, $toCity, $fromDate)
{
// Between dates
$beforeDate = date('Y-m-d', strtotime($fromDate . '- 10 days'));
$afterDate = date('Y-m-d', strtotime($fromDate . '+ 10 days'));

$join = $query
-> join('airlines', 'airlines.pana', 'flights.airline')
-> where('flights.from_city', $fromCity)
-> where('flights.to_city', $toCity)
-> whereBetween('flights.date', [$beforeDate, $afterDate])
-> get([
'flights.*',
'airlines.pana as pana',
'airlines.name as airlineName'
]);
return $join;
}

然后 Print_r($sortFlight),打印 groupBy('date') 之后就可以了 但是 sortBy('price') 不起作用!!!!

我的问题在哪里?

最佳答案

我在 Laravel 中对分组集合中的值进行排序的解决方案

$sponsors = Sponsor::with('sponsor_level')->whereStatus(1)->get();

// grouped by sponsor level name
$grouped = $sponsors->sortBy('sponsor_level.order')->groupBy(function($item, $key){
return $item->sponsor_level->name;
});

// finally sorted by sponsor name inside the group
return $grouped->map(function($item, $key){
return $item->sortBy('name');
});

当然你可以链接这些,为了更好的可读性我分开了。

关于laravel - 如何在 Laravel 5.3 中的 collect 中的 groupBy 之后使用 sortBy?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41906694/

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