0

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

例子:

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

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

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

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

我期望的代码是这样的:(这未经测试,可能不起作用)

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

谢谢。

4

2 回答 2

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');     
        }
    }
}
于 2012-11-26T17:48:11.310 回答
0

这是要找的吗?

于 2012-11-26T13:29:36.010 回答