Почему может не работать search ?

Общие вопросы по использованию фреймворка. Если не знаете как что-то сделать и это про Yii, вам сюда.
Ответить
Nexux
Сообщения: 2
Зарегистрирован: 2017.03.21, 22:56

Почему может не работать search ?

Сообщение Nexux »

Почему не работает search?
Перестал работать фильтр, не могу понять почему и где тут ошибка, продебажил, и как выяснилось criteria не получает ни каких данных. модель

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

$criteria = new CDbCriteria;

        $criteria->with = array('street' => array('with' => 'town'));
        $criteria->compare('ID', $this->ID);
        $criteria->compare('Town', $this->Street_ID, true);
        $criteria->compare('Surname', $this->Surname, true);
        $criteria->compare('Patronymic', $this->Patronymic, true);
        $criteria->compare('Name', $this->Name, true);
        $criteria->compare('Building', $this->Building);

        $sort = new CSort;
        $sort->attributes = array(
            'street' => array(
                'asc' => 'street,town',
                'desc' => 'Street DESC, Town DESC',
            ),
            '*'
        );
        return new CActiveDataProvider(get_class($this), array(
            'criteria' => $criteria,
            'sort' => $sort,
        ));
контроллер

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

public function actionIndex()
    {
        $model = new Fio('search');
        $model->unsetAttributes();  // clear any default values
        if (isset($_GET['Fio']))
            $model->attributes = $_GET['Fio'];

        $dataProvider = new CActiveDataProvider('Fio');
        $this->render('index', array(
            'dataProvider' => $dataProvider,
            'model' => new Fio,
            'phone' => new Phone,
        ));
    }
вьюха

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

'id' => 'fio-grid',
    'filter' => $model,
    'dataProvider' => $model->search(),
    'columns' => array(
        'Surname',
        'Name',
        'Patronymic',
        array(
            'name' => 'street',
            'value' => function ($data) {
                $output = "";
                if ($data->street instanceof Street) {
                    $output .= $data->street->Street;
                    if ($data->street->town instanceof Town) {
                        $output .= "," . $data->street->town->Town;
                    }
                }
                return $output;
            },
        ),
        'Building',
        array(
            'htmlOptions' => array('nowrap' => 'nowrap'),
            'class' => 'booster.widgets.TbButtonColumn',
        ),
помогите понять в чем ошибка моя
Nexux
Сообщения: 2
Зарегистрирован: 2017.03.21, 22:56

Re: Почему может не работать search ?

Сообщение Nexux »

Ошибка была в банальной опечатке при переопределении model
$dataProvider = new CActiveDataProvider('Fio');
$this->render('index', array(
'dataProvider' => $dataProvider,
'model' => new Fio, было -> 'model'=>$model надо
'phone' => new Phone,
Ответить