【发布时间】:2014-06-08 12:49:28
【问题描述】:
我有 ajax 表单提交和一些验证规则:
array('go1, go2', 'type', 'type' => 'time', 'timeFormat' => 'hh:mm', 'except'=>'save'),
array('go1, go2', 'type', 'type' => 'datetime', 'datetimeFormat' => 'yyyy-MM-dd hh:mm:ss', 'on'=>'save'),
我的控制器:
if($model->save())
{
echo CJSON::encode(array(
'status'=>'success'
));
Yii::app()->end();
} else {
$error = CActiveForm::validate($model);
if($error!='[]')
echo $error;
Yii::app()->end();
}
问题是,“除了”没有按预期忽略保存场景,因为我修改了 $_POST 数据,它没有通过它。数据保存没有这条规则,但是,不在 $error = CActiveForm::validate($model);
有人知道如何让它工作吗?或者也许有一些规则,比如'on'=>'validation'? 谢谢!
更新:我以另一种方式完成了我的任务,$model->save(false),所以我只使用 Yii - CActiveFrom::validation 验证一次,但在 $model-save( ) 现在。然后如果一切正常,我检查控制器中的另一个条件,如果有问题,我返回 JSON 错误。
但主要问题仍然存在,第二条规则仅适用于 $model->save(),为什么除了 => 保存之外,它不仅在 CActiveForm Validation 中有效,而且在 $Model->save 中也有效?
【问题讨论】:
标签: php validation yii except