表格yii2中没有的网格视图中的自定义列的筛选器

ercv8c1e  于 2022-11-09  发布在  其他
关注(0)|答案(3)|浏览(144)

我已经在gridview中添加了这个'sla_status'字段,一切都正常,唯一的问题是我无法为此设置筛选器值。'sla_status'不在我的表中。

[
            'label' => Yii::t('app','Sla Status'),
            'format' => 'raw',
            'filterType' => GridView::FILTER_SELECT2,
            'filter' => $status,
            'filterWidgetOptions' => [ 
                    'options' => [ 
                            'placeholder' => Yii::t('app','All...' )
                    ],
                    'pluginOptions' => [ 
                            'allowClear' => true 
                    ] 
            ],

            'headerOptions' => ['style' => 'text-align:center;color:#337ab7'],
            'value' => function ($model, $key, $index, $widget)
            {           }   
            ]

而$状态为$status = array('0'=>Yii::t('app', 'Inactive'),'1'=>Yii::t('app', 'Active'));

qxgroojn

qxgroojn1#

添加公共变量$sla_status,并在搜索模型的rules数组中将sla_status添加为safe

public $sla_status;
public function rules()
{
    return [
        [['sla_status'], 'safe'],
    ];
}
vx6bjr1n

vx6bjr1n2#

在搜索模型中,您应该添加属性sla_status,并在search()中添加必需的where。例如:

class TaskSearch extends Task{
public $sla_status;
public function search($params){ 
    $query = Task::find();
    if($this->sla_status){ $query->andWhere(...); } 
}}
kgsdhlau

kgsdhlau3#

将字段“sla_status”添加到您的模型或搜索模型的规则方法中的“safe”,如
[['sla_status'], 'safe'],

相关问题