繁体   English   中英

如何使用Yii2 GridView中的多选下拉列表执行过滤

[英]How to perform Filter using Multi Select Dropdown in Yii2 GridView

在这里,我想清楚地解释我的问题,

我试图执行多选下拉过滤器,在此多选过滤器之前,我有一个基本过滤器。

我正在使用kartik-v下拉延伸

search.php中

<?php
     $status = ArrayHelper::map(Status::find()->all(),'id','status');
     echo $form->field($model, 'status')->widget(Select2::classname(), [
                            'data' => $status,
                            'language' => 'en',
                            'options' => [
                            'placeholder' => 'Select Status..',
                            'multiple' => true
                            ],
                            'pluginOptions' => [
                                'allowClear' => true
                            ],
                    ]);
?>

claimsSearch.php

$query->andFilterWhere([
            'status' => $this->status
        ]);

如果我尝试上面的代码我得到如下错误

Array to string conversion

但在这里我不知道如何编写过滤器代码。

更新searchview: 搜索视图快照

尝试从EmployeeSearch规则中删除“状态”。 你无法过滤这种现场自动方式。 或者你必须为状态列设置自定义过滤器值,就像这样(你可以深入研究这个方向):

如何在GridView :: widget,Yii2的搜索框中使用简单的下拉列表? 试试这个链接

您没有在该窗口小部件中调用模型。 你应该像这样使用:

echo $form->field($mySearchModel, 'state_10')->widget(Select2::classname(), [
    'data' => $status,
    'options' => [
        'placeholder' => 'Select Status ...',
        'multiple' => true
    ],
]);

你选择它可能会返回一个数组。 所以,你的搜索将是这样的:

$query->andFilterWhere([
    'status' => ('in', 'status', $this->status)
]);

在此处查看更多查询示例。

如果该解决方案不起作用,我将在您的视图中为您做一个var_dump($yourModel->status) ,只是为了检查返回的内容。

$ this-> status是数组?

所以,你可以使用

<?php
 $status = ArrayHelper::map(Status::::model()->findAllByAttributes(array("id"=>$status));(),'id','status');
 echo $form->field($model, 'status')->widget(Select2::classname(), [
                            'data' => $status,
                            'language' => 'en',
                            'options' => [
                            'placeholder' => 'Select Status..',
                            'multiple' => true
                            ],
                            'pluginOptions' => [
                                'allowClear' => true
                            ],
                    ]);
?>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM