在kartik gridview上,我想添加选择2类型的过滤器,如下所示:
[
'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;'],
],
但结果是filterWidgetOptions
不起作用。我添加了allowclear
和minimuminputLength
,但它不起作用。这个代码我做错了什么?
谢谢
答案 0 :(得分:0)
由于搜索模型会查找要进行搜索的ID,因此您应该映射
ID
到
名称
'filter'=>ArrayHelper::map(\app\models\ProductWord::find()->asArray()->all(), 'id', 'name'),
另外,如下所示更改值。您应该使用模型来获取值。
'value' => function ($model) {
return $model->product->name;
},
答案 1 :(得分:0)
正确的是:
minimumInputLength => 3
这是可行的!