我想通过使用比较运算符来限制gridview中显示的项目的结果。
类似的东西:
$model->dateEnd >= date("Y-m-d");
我可以在控制器中做些什么吗?还是必须在模型的搜索方法中完成?
答案 0 :(得分:0)
您可以通过添加条件将CGridView中显示的结果过滤到数据提供者。例如:
$dataProvider=new CActiveDataProvider('Post', array(
'criteria'=>array(
'condition'=>'dateEnd >= NOW()',
),
'pagination'=>array(
'pageSize'=>20,
),
));
CActiveDataProvider文档有更多信息。
答案 1 :(得分:0)
您可以设置一个“参数化命名范围”,其语法类似于您的要求:
$models->after($date);
Yii Guide显示了如何在模型中实现命名范围,如下所示:
public function after($date='2011-11-11')
{
$this->getDbCriteria()->mergeWith(array(
'condition'=>'dateEnd >= :endDate',
'params' => array(":endDate"=>"%$date%")
));
return $this;
}