我有一个包含许多属性的模型,我想在保存之前进行验证。所以在某些情况下我只会进行模型初始化但没有属性赋值
$model=new patient(); $model->validate();
但它返回true,我有许多属性设置为必需。我不明白这是怎么发生的?
有没有办法在保存模型之前验证模型,即使没有为模型分配属性?
答案 0 :(得分:1)
答案 1 :(得分:0)
您可以在创建模型后随时验证模型。
让我们看一下事件的顺序: -
您已创建了一个模型类:
class User extends CActiveRecord
{
...
}
这为患者类创建了一个模板,该模板继承自CActiveRecord,这意味着它具有继承的可用功能。因此,虽然您的类文件不是activate()函数,但它从CActiveRecord类继承它。
现在您创建一个类
的实例$patient1 = new patient;
这意味着患者1现在存在一些内存空间。它有价值。有些可能是空的而有些则不是(例如,它们可能有默认值)。
所以,在任何时候,你都可以
$model->validate();
这会更改模型以包含错误消息。要获得已经提出的错误,请使用
$allErrors = $model->getErrors()
print_r($all_errors); // This will show you the structure.
要以简洁的方式打印错误,请使用
echo CHtml::errorSummary($model);