如何在模型中添加最小日期验证规则?
示例:
我有一个列dt_ini作为DATE,我需要在创建时将输入限制为D + 7。
如果今天是:2012年10月1日
创建时的最短有效日期为:2012年10月8日。
否则,我会抛出一个验证错误:您的日期必须至少为7天。
我期望的代码是这样的:(这是未经过测试的,可能无效)
public function rules(){
return array('dt_ini', 'date', 'minDate' => '+7'),
}
感谢。
答案 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');
}
}
}