Задать вопрос
VladOsadchyi
@VladOsadchyi
Студент

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

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

        return $countries;
    }

Думаю и так понятно, что он делает) Но мне нужно сделать, чтобы первой в списке была страна с определенным id, н-р 220, а потом все остальные по алфавиту, как это сделать?
  • Вопрос задан
  • 92 просмотра
Подписаться 1 Простой 18 комментариев
Помогут разобраться в теме Все курсы
  • Skillbox
    Java-разработчик
    8 месяцев
    Далее
  • Shultais Education
    Основы SQL
    3 месяца
    Далее
  • OTUS
    PHP Developer. Professional
    5 месяцев
    Далее
Решения вопроса 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;
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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