在yii中保存之前检查日期是否在范围内

时间:2014-01-12 15:29:12

标签: validation yii

如何在保存之前检查用户表单中发布的日期是否存在于某个范围内?它假设检查不同的场景日期范围。以下只是其中之一。如果它不属于范围,则发布。

有更好的方法吗?

    $model = Table::model();
    $criteria = new CDbCriteria;
    //this is where i don't know how to get the values ($start,$end) from user before posting

    $criteria->addCondition('start_date < '.$start);
    $criteria->addCondition('end_date > '.$end);

1 个答案:

答案 0 :(得分:1)

您必须创建自定义验证功能:

在规则中添加:此规则适用于插入和更新。

public function rules()
{
    return array(
        array('dateField', 'myCheckdate',),
    );
}

在自定义验证功能中,您可以应用代码来检查日期范围

 public function myCheckdate($attribute,$params)
    {
        if(!$this->hasErrors())
        {
            if(Condition == false) // place your condition here
            {
                $this->addError($attribute,'The date is incorrect.');
            }
        }
    }