2017-08-07 2 views
0

Je veux Ajouter filtre avec liste (quelque chose comme Qu'est-ce que In Grid View) mais je ne sais pas comment faire celaComment ajouter le filtre de recherche comme Grille En Liste Yii2

Filtres Je veux Are CheckBox Et les options DropDown.

Voici mon code d'action SiteController

<?php 

public function actionMobiles(){ 
    $searchModel = new MobileSearch(); 
    //$dataProvider = $searchModel->search(Yii::$app->request->queryParams); 
//$dataProvider = $searchModel->search(Yii::$app->request->queryParams); 

    $dataProvider = new ActiveDataProvider([ 
    'query' => Mobile::find(), 
    'pagination' => [ 
    'pageSize' => 1, 
], 
]); 

// get the posts in the current page 
//$posts = $dataProvider->getModels(); 
return $this->render('mobiles', ['dataProvider' => $dataProvider,'searchModel' => $searchModel]); 


} 

?> 

Dans Voir fichier I Have 2 fichiers:

Is Here mobiles Vue:

<?php 
use yii\widgets\ListView; 
use yii\helpers\Html; 
use yii\grid\GridView; 
use yii\helpers\ArrayHelper ; 
use app\models\Mobile; 
?> 

<?= ListView::widget([ 
    'dataProvider' => $dataProvider, 
     //'filterModel' => $searchModel, 
     'itemView' => '_mobiles', 

]); ?> 

Et En _mobiles I Have:

<?php 
use yii\widgets\DetailView; 
?> 

<?= DetailView::widget([ 
    'model' => $model, 
    'attributes' => [ 
     //'id', 
     'id', 
     'title', 
     //'ativo', 
    ], 
]) ?> 

Il affiche les données de DataBase correctement avec la pagination. Mais comment ajouter un filtre pour mettre à jour la liste (CheckBox et DropDown List sont utilisés pour mettre à jour) ??

+0

ajouter 'filterModel' => $ searchModel, dans votre widget – Gunnrryy

+0

en affichage liste ??? @Gunnrryy – areff

+0

Définition de la propriété inconnue: yii \ widgets \ ListView :: filterModel @Gunnrryy – areff

Répondre

0

Voici le code pour vous, vous devez remplacer l'attribut et le nom du modèle selon le vôtre.

[ 
     'attribute' => 'attribute_name', 
     'label' => 'Email', 
     'value' => function($model){ 
      return $model->attribute_name; 
     }, 
     'filterType' => GridView::FILTER_SELECT2, 
     'filter' => \yii\helpers\ArrayHelper::map([Your Model]::find()->asArray()->all(), 'id', 'email'), 
     'filterWidgetOptions' => [ 
      'pluginOptions' => ['allowClear' => true], 
     ], 
     'filterInputOptions' => ['placeholder' => 'Email', 'id' => 'grid--search-email'] 
    ], 
+0

est-ce comme d'autres gridviews? peut être pagination? – areff

+0

c'est juste un autre attribut dans la vue de la grille. vous pouvez l'ajouter comme une nouvelle colonne, peut être paginée aussi. – Gvep