2016-08-09 3 views
1

Можете ли вы помочь мне с внедрением фильтров в GridView в Yii2? Прямо сейчас моя отображаемая таблица не отвечает на мои действия (параметры поиска GET не добавляются, ничего не меняется, если я ввожу запрос на вход фильтра). Вот мой код: Контроллер:Yii2 Фильтр Gridview не работает

$searchModel = new UserSearch(); 
     $dataprovider = $searchModel->search(\Yii::$app->request->get()); 
     return $this->render('index', [ 
      'dataProvider' => $dataprovider, 
      'searchModel' => $searchModel 
     ]); 

Модель (UserSearch.php):

public $fullname; 

    public function rules() 
    { 
     return [ 
      [['fullname'], 'safe'], 
     ]; 
    } 

    public function search($params) { 
     $query = StUsers::find(); 
     $dataProvider = new ActiveDataProvider([ 
      'query' => $query, 
     ]); 

     if(!($this->load($params) && $this->validate())) { 
      return $dataProvider; 
     } 

     $query->andFilterWhere(['LIKE', 'fullname', $this->fullname]); 
     return $dataProvider; 
    } 

Вид:

GridView::widget([ 
      'dataProvider' => $dataProvider, 
      'filterModel' => $searchModel, 
      'columns' => [ 
       'id', 
       'fullname' 
       ], 
      ]); 
+0

'$ DataProvider = $ searchModel-> Поиск (Yii :: $ app-> request-> queryParams);' –

+1

сделал это. Но все же, если я ввешу какой-то текст во вход и нажмите ENTER - ничего не произойдет (( – HugeD

+0

Вы добавили это имя столбца в массив поиска в modal? I означает массив безопасных поисковых правил. –

ответ

0

У меня такая же проблема при фильтрации в DataView. Возможно, проблема заключается в стороне клиента. Повторите попытку, если ваш jquery дважды вызывал вашу страницу (браузер/исходный код). Может быть ваша проблема, связанная с этим также: jQuery(...).yiiGridView is not a function

+1

Вам следует добавить краткое описание решения, а не только ссылку Кроме того, если на вопрос уже дан ответ, вы должны указать вопрос как дублированный –

+0

большое спасибо за совет Иван. – widi83