gpt4 book ai didi

php - Eloquent orderBy 除了一行

转载 作者:行者123 更新时间:2023-11-29 01:50:47 24 4
gpt4 key购买 nike

我基本上只想按名称对我的结果进行排序,但 1 行除外 - 我想将其保留在结果的底部。

我有以下数据库表:

INSERT INTO `teams` (`id`, `name`, `created_at`, `updated_at`) VALUES
(1, 'Anaheim Ducks', NULL, NULL),
(2, 'Arizona Coyotes', NULL, NULL),
(3, 'Atlanta Flames', NULL, NULL),
(4, 'Atlanta Thrashers', NULL, NULL),
(5, 'Boston Bruins', NULL, NULL),
(6, 'Buffalo Sabres', NULL, NULL),
(7, 'Calgary Flames', NULL, NULL),
(8, 'California Golden Seals', NULL, NULL),
(9, 'Carolina Hurricanes', NULL, NULL),
(10, 'Chicago Blackhawks', NULL, NULL),
(11, 'Cleveland Barons', NULL, NULL),
(12, 'Colorado Avalanche', NULL, NULL),
(13, 'Colorado Rockies', NULL, NULL),
(14, 'Columbus Blue Jackets', NULL, NULL),
(49, 'Other', NULL, NULL);

现在,我想使用 Eloquent 按 name 对所有这些进行排序,除了我希望 Other 位于底部。

我不确定如何使用 orderBy() 执行此操作。我该怎么做?

最佳答案

作为@Anton 答案的替代方案(并且您使用的是 Laravel 5.3+),您可以使用 partition()方法:

$teams = Team::orderBy('name')->get()
->partition(function ($item) {
return $item->name != 'Other';
})->flatten();

这会将“其他”行推到列表的底部,同时保持其余集合的顺序。

希望这对您有所帮助!

关于php - Eloquent orderBy 除了一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44349016/

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