yii CGridView&比较运算符

时间:2011-11-14 19:35:10

标签: php yii

我想通过使用比较运算符来限制gridview中显示的项目的结果。

类似的东西:

$model->dateEnd >= date("Y-m-d");

我可以在控制器中做些什么吗?还是必须在模型的搜索方法中完成?

2 个答案:

答案 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;
}