筛选网格视图中不在表yii2中的自定义列

时间:2017-06-02 11:27:37

标签: php yii yii2 kartik-v

我添加了这个' sla_status' gridview中的字段,并且每件事情都工作正常问题是我无法为此设置过滤器值。 ' 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为$status = array('0'=>Yii::t('app', 'Inactive'),'1'=>Yii::t('app', 'Active'));

3 个答案:

答案 0 :(得分:1)

在搜索模型的规则数组中添加一个公共变量$ sla_status并将sla_status添加为安全的

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

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

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

[['sla_status'], 'safe'],

相关问题