Yii最小日期验证规则

时间:2012-11-26 13:06:48

标签: yii

如何在模型中添加最小日期验证规则?

示例:

我有一个列dt_ini作为DATE,我需要在创建时将输入限制为D + 7。

如果今天是:2012年10月1日

创建时的最短有效日期为:2012年10月8日。

否则,我会抛出一个验证错误:您的日期必须至少为7天。

我期望的代码是这样的:(这是未经过测试的,可能无效)

    public function rules(){
      return array('dt_ini', 'date', 'minDate' => '+7'),
    }

感谢。

2 个答案:

答案 0 :(得分:0)

this您要找的是什么?

答案 1 :(得分:0)

创建自定义有效规则,如下所示:

class YourModel extends CActiveModel
{
    // some....

    public function rules(){
      return array('dt_ini', 'dateValid', 'minDate' => '+7 day', 'on' => 'create');
    }

    public function dateValid($attribute, $params)
    {
        $valid=null;
        $today = date('Y-m-d', time());
        if(isset($params['minDate']))
            $valid = date('Y-m-d', strtotime($params['minDate'])); //+7 day

        if( !is_null($valid) )
        {  //for increamental date
            if($this->dt_ini >  $valid || $this->dt_ini < $today )
                $this->addError($attribute, 'enter error message');     
        }
    }
}