CGridView сортировка и фильтрация

Общие вопросы по использованию фреймворка. Если не знаете как что-то сделать и это про Yii, вам сюда.
Ответить
Аватара пользователя
Elfer
Сообщения: 132
Зарегистрирован: 2012.06.07, 16:09
Откуда: Беларусь, Лида
Контактная информация:

CGridView сортировка и фильтрация

Сообщение Elfer »

Доброго времени суток, форумчане! Давно имею проблемку, которую до сих пор не могу решить.
В CGridView без проблем работает фильтрация и сортировка по отдельности. Т.е. когда либо то, либо другое делаю. Но когда фильтрую, а затем делаю сортировку, то после этого фильтрация ничего не меняет.

Примеры:
1) когда использую только фильтр по полю `word`, урл получается такой:
http:// site/admin/anchor?Anchor[id]=&Anchor[word]=март&Anchor[form]=&Anchor_page=1

2) когда использую сортировку по полю `form`, урл такой:
http:// site/admin/anchor/index/Anchor_sort/form

3) делаю фильтрацию по полю `word`, затем сортировку по полю `form`, урл выходит такой:
http:// site/admin/anchor/index/Anchor[id]//Anchor[word]/март/Anchor[form]//Anchor_page/1/Anchor_sort/form

4) делаю фильтрацию по полю `word`, затем сортировку по полю `form`, после этого фильтрую `id`:
http:// size/admin/anchor/index/Anchor[id]//Anchor[word]/март/Anchor[form]//Anchor_page/1/Anchor_sort/form?Anchor[id]=>20&Anchor[word]=март&Anchor[form]=&Anchor_page=1

Первые 3 примера работают без проблем. Но вот 4 - не работает фильтр по id. Причина понятная - в урл 2 раза перечисляются поля: сначала через разделитель - слеш, а затем после знака вопроса, как GET параметры.
Если внимательно посмотреть на урлы, которые создаются после каждого действия в примерах выше, то можно увидеть, что фильтр использует GET параметры, а сортировка - использует слеши.

Не могу понять, почему так и как это исправить? Хочется привести перечисления всех полей фильтрации, сортировки и пейджинга к GET формату.
Приколы: юмор, анекдоты - Zasmeshi.Ru сайт на Yii, великие возможности фреймворка.
Аватара пользователя
Elfer
Сообщения: 132
Зарегистрирован: 2012.06.07, 16:09
Откуда: Беларусь, Лида
Контактная информация:

Re: CGridView сортировка и фильтрация

Сообщение Elfer »

Вопрос решился, добавив правило rules для компонента urlManager в конфиг:
'admin/<controller>' => 'admin/<controller>/index'.
Приколы: юмор, анекдоты - Zasmeshi.Ru сайт на Yii, великие возможности фреймворка.
Ответить