Php 表格yii2中不存在的网格视图中自定义列的过滤器
我在gridview中添加了这个“sla_status”字段,一切正常,唯一的问题是我无法为此设置筛选值。 “sla_状态”不在我的表中Php 表格yii2中不存在的网格视图中自定义列的过滤器,php,yii,yii2,kartik-v,Php,Yii,Yii2,Kartik V,我在gridview中添加了这个“sla_status”字段,一切正常,唯一的问题是我无法为此设置筛选值。 “sla_状态”不在我的表中 [ 'label' => Yii::t('app','Sla Status'), 'format' => 'raw', 'filterType' => GridView::FILTER_SELECT2, 'filter' => $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')代码>在搜索模型中,您应该添加属性sla\u status
并在search()中添加所需的位置。
例如:
class TaskSearch extends Task{
public $sla_status;
public function search($params){
$query = Task::find();
if($this->sla_status){ $query->andWhere(...); }
}}
在模型或搜索模型的规则方法中将字段“sla_状态”添加到“安全”中,如
[['sla_状态'],'safe'],
在搜索模型的规则数组中添加公共变量$sla_status,并将sla_status添加为safe
public $sla_status;
public function rules()
{
return [
[['sla_status'], 'safe'],
];
}
如果它在一个相关的表中,那么你需要添加这个具有关系的表,然后使用该表对其进行筛选。不,它不是任何表,我正在根据任务的到期日期计算“sla状态”的值。因此,该字段实际上不存在于数据库本身的任何位置。我认为筛选将基于日期,也不基于状态。。。第二个想法是,您需要比较结果,并使用afterFind事件过滤数据或使用internalFind