VladOsadchyi
@VladOsadchyi
Студент

Как сделать вывод определенной записи первой при сортировке по алфавиту?

В общем есть такой метод
public function getCountries()
    {
        $countries = ArrayHelper::map(Countries::find()
            ->orderBy(['name' => SORT_ASC])
            ->asArray()
            ->all(), 'id', 'name');

        return $countries;
    }

Думаю и так понятно, что он делает) Но мне нужно сделать, чтобы первой в списке была страна с определенным id, н-р 220, а потом все остальные по алфавиту, как это сделать?
  • Вопрос задан
  • 91 просмотр
Решения вопроса 1
orlov0562
@orlov0562
I'm cool!
->orderBy([
    new \yii\db\Expression('FIELD (id, 220)'),
    'name' => SORT_ASC,
]);

в общем гугли про " \yii\db\Expression" и "ORDER BY FIELD"

или так :)
....
unset($countries[220]);
$countries = [220 => 'Country Name'] + $countries;
return $countries;
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы