Yii $model->;validate()返回true而不指定任何属性?
我有一个具有许多属性的模型,我想在保存它之前进行验证。因此,在某些情况下,我只能进行模型初始化,而没有属性赋值Yii $model->;validate()返回true而不指定任何属性?,yii,Yii,我有一个具有许多属性的模型,我想在保存它之前进行验证。因此,在某些情况下,我只能进行模型初始化,而没有属性赋值 $model=new patient(); $model->validate(); 但它返回true,我将许多属性设置为required。我不明白这是怎么发生的 是否有一种方法可以在保存模型之前验证模型,即使没有为模型指定属性?您可以在模型创建后随时验证模型 让我们看一下事件的顺序:- 您已经创建了一个模型类: class User extends CActiveRecor
$model=new patient(); $model->validate();
但它返回true,我将许多属性设置为required。我不明白这是怎么发生的
是否有一种方法可以在保存模型之前验证模型,即使没有为模型指定属性?您可以在模型创建后随时验证模型 让我们看一下事件的顺序:- 您已经创建了一个模型类:
class User extends CActiveRecord
{
...
}
这将为patient类创建一个模板,该模板继承自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);
您有验证规则,但可能会错过验证时的场景 通过以下方法检查当前对象模型上的验证器
print_r($model->validatorList);
参考此只需回显或打印您的模型或模型属性,并检查是否分配了任何默认值。哎呀!一个错误也是一个好的学习。初始化时我错过了场景。谢谢Saravankg。我试过了,尽管他们都没有初始化,但结果仍然是真的。现在我包括了这个场景,现在一切都好了。