@EVOSandru6

Почему в Yii не работает $criteria->order?

Такая беда, нужно отсортировать список по полю в таблице `ORDER`

$criteria = new CDbCriteria();

1) пробовал так :
$criteria->order = 'ORDER ASC'; - ругается на слово ORDER(системное), беру в `кавычки`

2) пробую
$criteria->order = '`ORDER` ASC'- записи все равное идут по полю CODE(AI , PRIMARY KEY)

3) $criteria->order = '`ORDER`'- то же , что и 2)

Когда я пробовал пункт 1) получил такую штуку

SELECT * FROM `mc_slider` `t` ORDER BY ORDER

Добавил кавычки и в phpmyadmin голяком вставил :

SELECT * FROM `mc_slider` `t` ORDER BY `ORDER`

В этом случае я получил записи в нужном мне порядке. Но не понимаю откуда взялась `t` и почему записи выводятся.

Но самое главное как сделать, чтобы эта критерия заработала?
  • Вопрос задан
  • 2642 просмотра
Пригласить эксперта
Ответы на вопрос 2
AMar4enko
@AMar4enko
`t` это алиас для таблицы, ActiveRecord его добавляет.
Какой запрос был во втором случае сгенерирован?
Ответ написан
index0h
@index0h
PHP, Golang. https://github.com/index0h
Но самое главное как сделать, чтобы эта критерия заработала?

В order дописываются ваши поля фильтрации и будут добавлены после инструкции ORDER BY в результирующем запросе, как есть. `t` - это алиас основной таблицы, относительно которой делается запрос.

То, что вам нужно (sortField - поле, по которому необходима сортировка, в принципе можно использовать и множественную фильтрацию):
$criteria->order = '`t`.`sortFeild` ASC';
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы