2016-08-09 71 views
1

Können Sie mir bei der Implementierung von Filtern zu GridView in Yii2 helfen? Momentan reagiert meine gerenderte Tabelle nicht auf meine Aktionen (Suche GET-Parameter werden nicht hinzugefügt, nichts ändert sich, wenn ich eine Abfrage an eine Filtereingabe eingabe). Hier ist mein Code: Controller:Yii2 Gridview Filterung funktioniert nicht

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

Model (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; 
    } 

Ausblick:

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

'$ Datenprovider = $ searchModel-> Suche (Yii :: $ app-> request-> queryParams);' –

+1

tat es: Kann Ihr Problem mit dieser auch in Zusammenhang stehen. Aber trotzdem, wenn ich etwas Text in die Eingabe eingeben und die EINGABETASTE drücken - passiert nichts (( – HugeD

+0

) Haben Sie diesen Spaltennamen im durchsuchbaren Array in Modal ?? Ich meine Safe Search Rules Array. –

Antwort

0

Ich habe das gleiche Problem, wenn in Dataview filtern. Vielleicht liegt das Problem auf der Client-Seite. Überprüfen Sie erneut, ob Ihre jquery auf Ihrer Seite zweimal aufgerufen hat (Browser/Quellcode). jQuery(...).yiiGridView is not a function

+1

Sie sollten eine kurze Beschreibung der Lösung hinzufügen, nicht nur den Link Wenn die Frage bereits beantwortet ist, sollten Sie die Frage als dupliziert markieren –

+0

Vielen Dank für Ihren Rat Ivan. – widi83