2012-01-19 6 views
3

Я хочу, чтобы фильтр CGridView работал с несколькими словами в одном столбце в то время. Например, я хочу показать все строки с «А» в первом столбце плюс все строки с «В» в том же столбце.Yii CGridView Filter

Кто-нибудь знает, какой класс и функции я должен переопределить для этого?

ответ

4

Вам необходимо будет изменить функцию поиска() в вашей модели. Функция поиска() будет иметь что-то вроде этого -

$criteria->compare('your_column_name', $this->your_column_name, true); 

вы можете изменить его, нарушая вход, который находится в $ this-> your_column_name и добавив один Сравним условие для каждого из элементов ввода. Вы можете использовать explode(), чтобы разбить строку на несколько терминов.

+0

спасибо, отлично работает, также мне нужно заполнить операторный параметр метода сравнения, так как 'OR' – maty42

+0

Функция сравнения принимает 5 параметров, 3 из которых являются необязательными. Четвертый параметр указывает оператора. в вашем случае вы можете использовать $ criteria-> compare ('your_column_name', $ this-> your_column_name, true, 'OR') Оформить документацию api для получения более подробной информации - http://www.yiiframework.com/doc/ апи/1.1/CDbCriteria # сравнить-деталь –