2017-10-06 3 views
0

Sur le gridview Kartik je veux ajouter filtre de sélection 2 de type comme ci-dessous:filterWidgetOptions ne fonctionne pas (yii2)

[ 
       'attribute' => 'product_id', 
       'value' => function ($model) { 
       return $model->product->name; 
       }, 
       'filterType'=>GridView::FILTER_SELECT2, 
       'filter'=>ArrayHelper::map(\app\models\ProductWord::find()->asArray()->all(), 'name', 'name'), 
       'filterWidgetOptions'=>[ 
        'pluginOptions'=>['allowClear'=>true, 'minimuminputLength' => 3], 
       ], 
       'filterInputOptions'=>['placeholder'=>'Any Product', 'multiple' => true ], 
       'group'=>true, // enable grouping 
       'label' => 'Product', 
       'headerOptions' => 
        ['style'=>'max-width: 70%; font-size: 12px;overflow: auto; word-wrap: break-word;'], 
       'contentOptions' => 
        ['style'=>'max-width: 70%; font-size: 12px;overflow: auto; word-wrap: break-word;'], 
], 

mais le résultat est filterWidgetOptions ne fonctionne pas. J'ajoute allowclear et minimuminputLength mais cela ne fonctionne pas. ce que je fais mal avec ce code?

Merci Vous

Répondre

0

Depuis modèle de recherche cherche id effectuer une recherche, vous devez mapper

id

à

Nom

'filter'=>ArrayHelper::map(\app\models\ProductWord::find()->asArray()->all(), 'id', 'name'), 

De même, modifiez votre valeur comme ci-dessous. Vous devriez utiliser votre modèle pour obtenir des valeurs.

'value' => function ($model) { 
     return $model->product->name; 
    },