Фильтр из GET в GridView

Общие вопросы по использованию фреймворка. Если не знаете как что-то сделать и это про Yii, вам сюда.
Ответить
xtz
Сообщения: 11
Зарегистрирован: 2012.04.02, 18:42

Фильтр из GET в GridView

Сообщение xtz »

Помоему я переработал или еще чтото, но никак не могу понять как правильно организовать следующее
Есть у меня модель характеристик для неких категорий. Соответственно есть желание чтобы в CGridView по урлу character/list/id_cat/5/ выводились характеристики только 5й категории.
В контроллере

Код: Выделить всё

$model=new Сharacter('search');
        $model->unsetAttributes();  // clear any default values
        if(isset($_GET['Сharacter']))
            $model->attributes=$_GET['Сharacter'];

        $this->render('list',array(
            'model'=>$model,
        ));
Все стандартно в отображении тоже. после круд генератора. я раньше создавал новую критерию, и при выводе виджета CGridView присваивал ее 'dataProvider'у. но это не правильно, ведь мне надо чтобы так было всегда мне не надо все данные мне надо только те что принадлежат определенной категории.
xtz
Сообщения: 11
Зарегистрирован: 2012.04.02, 18:42

Re: Фильтр из GET в GridView

Сообщение xtz »

if(isset($_GET['Сharacter']))
$model->attributes=$_GET['Сharacter'];



Зачем вот эта строчка кода?
Аватара пользователя
sequester
Сообщения: 95
Зарегистрирован: 2012.01.09, 16:20
Откуда: Донецк, Украина

Re: Фильтр из GET в GridView

Сообщение sequester »

если гета не будет, будет ошибка уровня PHP WARNING.
Что то типа undefined index 'Character'
xtz
Сообщения: 11
Зарегистрирован: 2012.04.02, 18:42

Re: Фильтр из GET в GridView

Сообщение xtz »

sequester писал(а):если гета не будет, будет ошибка уровня PHP WARNING.
Что то типа undefined index 'Character'
Спасибо но почему у меня гет не передает ничего? если взять отдельно гет параметр то он выводится а гет характеристики ничего не возвращает.
rmrevin
Сообщения: 92
Зарегистрирован: 2012.01.26, 18:55

Re: Фильтр из GET в GridView

Сообщение rmrevin »

sequester писал(а):если гета не будет, будет ошибка уровня PHP WARNING.
isset как раз для предотвращения такой ошибки

Как я понял нужна выборка по пятой категории? Так зачем вы присваиваете атрибуты?
Вам скорее нужно что-то вроде

Код: Выделить всё

Сharacter::model()->findByAttributes(array('cat'=>intval($_GET['Сharacter'])))
xtz
Сообщения: 11
Зарегистрирован: 2012.04.02, 18:42

Re: Фильтр из GET в GridView

Сообщение xtz »

сделал подругому, посмотрел через фаербаг что гет нада отправлять в виде Сharacter[айди_каегории] так и сделал а в выводе убрал отображение фильтра. работает без написания доп кода.
Аватара пользователя
sequester
Сообщения: 95
Зарегистрирован: 2012.01.09, 16:20
Откуда: Донецк, Украина

Re: Фильтр из GET в GridView

Сообщение sequester »

rmrevin писал(а):
sequester писал(а):если гета не будет, будет ошибка уровня PHP WARNING.
isset как раз для предотвращения такой ошибки
спасибо большое Адмирал, что объяснили :)
Ответить