如何在保存之前检查用户表单中发布的日期是否存在于某个范围内?它假设检查不同的场景日期范围。以下只是其中之一。如果它不属于范围,则发布。
有更好的方法吗?
$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);
答案 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.');
}
}
}