我正在构建一个yii应用程序。下面是代码 - :
$id = 2;
$model = Page::model()->findByPk(2);
$model->title = 'HeyMan';
if($model->validate())
{
echo 'Validation retuned true';
}
else
{
$array = $model->getErrors();
$message = 'Validation returned false';
}
结果是validate()返回false,而getErrors()返回一个空数组。问题出在这里?感谢
答案 0 :(得分:5)
您是否在模型中使用 beforeSave 功能?然后确保返回父节点之前保存:
return parent::beforeSave();
答案 1 :(得分:0)
可行的解决方案:
答案 2 :(得分:0)
我遇到了同样的问题。在表单提交后的控制器中,validate()返回false,而getErrors()返回一个空数组。我在模型中以错误的方式使用了beforeSave()方法。当我修复了beforeSave()的用法时,validatin和模型保存开始正常工作。
我的解决方案是:
// in the model class
public function beforeSave($insert)
{
// some code here ...
return parent::beforeSave($insert);
}
不仅要调用返回parent :: beforeSave(); ,
但是使用 $ insert 参数调用
像这样:返回parent :: beforeSave($ insert);