@EVOSandru6

Почему в yii1 может не работать filter и search в CGridView?

Добрый день,

Есть таблица, имеющая много полей, заметил, что к меня не отрабатывает filter (ввод значений в input сверху колонок) и advancedSearch.

Думающий кружок крутится, но ничего не происходит, методом исключения обрубил правила для поиска до одного поля: id . И все равно фильтр не работает, как и поиск.

Модель:

class Bids extends ActiveRecord
{
...
public function rules()
	{
		return
			[
				[
					'id', 'safe', 'on'=>'search'
                                ]
                       ]}


public function search()
	{
		$criteria = new CDbCriteria;
		$criteria->compare('t.id',			$this->id);

return new CActiveDataProvider($this,
			[
				'criteria' => $criteria,
                        ]
	
	}

...
}


Контроллер:

class BidsController extends BackendController
{
...
	public function actionIndex()
	{
		$model			=	new Bids('search');
		$request 		= 	Yii::app()->request->getParam('Bids');
		$model->unsetAttributes();
		$dataProvider 	= $model->search();
		if(isset($request))
			$model->attributes = $request;
		$this->render('admin',
		[
			'model'			=>	$model,
			'dataProvider'	=>	$dataProvider,
		]);
	}
...
}


Представление:

$this->widget('GridView',
    [

        'rowCssClassExpression' =>  '$data->getRowCssClass()',
        'id'                    =>  'bids-grid',
        'dataProvider'          =>  $dataProvider,
        'filter'                =>  $model,
        'enablePagination'      =>  true,
        'columns'       =>
            [
                [
                    'name'                  =>      'id',
                    'headerHtmlOptions'     =>
                    [
                        'width' => 50
                    ],
                ],
]
    ]);


Что я не предусмотрел, почему фильтр не работает?
  • Вопрос задан
  • 592 просмотра
Решения вопроса 1
index0h
@index0h
PHP, Golang. https://github.com/index0h
Вы оставили только одно поле для фильтрации id и удивляетксь, почему другие(удаленные) не работают.
Кроме того, очищаете все атрибуты, далее формируете дата провайдер по ним(пустым), далее заносите данные запроса в модель.

В общем последовательность выполнения у вас хромает, очень
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы