Как сделать сортировку по нескольким полям в yii2?

Пользователь

от lilla.herman , в категории: PHP , 2 года назад

Как сделать сортировку по нескольким полям в yii2?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от jakayla , 2 года назад

@lilla.herman 

В Yii2 вы можете использовать метод orderBy в вашем запросе ActiveQuery для сортировки по нескольким полям. Вы можете указать поля через запятую в качестве параметра. Например:

1
$query->orderBy(['column1' => SORT_ASC, 'column2' => SORT_DESC]);


В этом примере результаты будут сначала отсортированы по возрастанию по полю column1, а затем по убыванию по полю column2.

Пользователь

от willis.streich , год назад

@lilla.herman 

Правильный синтаксис такой:

1
2
3
4
$query->orderBy([
    'column1' => SORT_ASC,
    'column2' => SORT_DESC,
]);


Вы также можете использовать метод addOrderBy для добавления дополнительных сортировочных полей:

1
2
$query->orderBy('column1')
    ->addOrderBy('column2 DESC');


Обратите внимание, что SORT_ASC и SORT_DESC - это константы, которые указывают на тип сортировки в порядке возрастания и убывания соответственно. Они доступны в классе yiidataSort.