Php 检查Yii框架中的验证规则
我是Yii框架的新手,所以我试图了解它的工作方式。 对于用户创建表单,我有以下验证规则,现在我需要的是签入afterValidation()方法,如果所有验证规则都传递了用户密码的哈希值。我不知道的是,如果验证规则通过与否,Yii是否有一个返回true或false的内置方法Php 检查Yii框架中的验证规则,php,yii,yii-events,Php,Yii,Yii Events,我是Yii框架的新手,所以我试图了解它的工作方式。 对于用户创建表单,我有以下验证规则,现在我需要的是签入afterValidation()方法,如果所有验证规则都传递了用户密码的哈希值。我不知道的是,如果验证规则通过与否,Yii是否有一个返回true或false的内置方法 public function rules() { // NOTE: you should only define rules for those attributes that /
public function rules()
{
// NOTE: you should only define rules for those attributes that
// will receive user inputs.
return array(
array('email, password, username', 'required'),
array('email, username, password', 'length', 'max'=>256),
array('email, username', 'unique'),
array('password', 'compare'),
array('password_repeat', 'safe'),
);
}
protected function afterValidate()
{
parent::afterValidate();
if("VALIDATION RULES HAVE PASSED, ther is no error message")
{
$this->password = $this->encrypt($this->password);
}
}
public function encrypt($value)
{
return md5($value);
}
您应该使用的方法是,因为表单验证已经执行。嵌套错误的可能原因是它在每次
$this->validate()之后调用您的afterValidate()
因为我认为如果执行了验证,并且您最终得到了一个无限循环,那么会自动调用它您应该使用的方法是因为表单验证已经执行了。嵌套错误的可能原因是它在每次$this->validate()
之后调用您的afterValidate()
,因为我认为如果执行了验证,就会自动调用它,而如果在afterValidate()
中放入任何内容,您只会得到一个无限循环,它在验证周期中运行,我想您应该在保存()之前将代码放入中
beforeSave()
只有在验证规则运行且没有错误时才会运行
作为奖励:如果你只是做标准密码的东西,考虑使用。它将为您节省大量时间,并且已经被一些最好的Yii程序员彻底检查过 相反,如果在验证周期中运行的afterValidate()
中放入任何内容,我认为您应该将代码放入beforeSave()
beforeSave()
只有在验证规则运行且没有错误时才会运行
作为奖励:如果你只是做标准密码的东西,考虑使用。它将为您节省大量时间,并且已经被一些最好的Yii程序员彻底检查过 你查过文件了吗?还是谷歌?这真的很容易找到。如果我在这里问我的问题,这意味着我已经检查了文档,不仅我还检查了谷歌!SmartAss因为$model->validate()
很难找到,一点努力可以走很长的路。我已经尝试了一些技巧,但是当我调用该函数时,我得到了以下错误:致命错误:达到了最大函数嵌套级别“100”,正在中止!在第559行的C:\php\Yii\framework\web\auth\CWebUser.php中,可能我没有正确使用$model->validate(),您检查过文档了吗?还是谷歌?这真的很容易找到。如果我在这里问我的问题,这意味着我已经检查了文档,不仅我还检查了谷歌!SmartAss因为$model->validate()
很难找到,一点努力可以走很长的路。我已经尝试了一些技巧,但是当我调用该函数时,我得到了以下错误:致命错误:达到了最大函数嵌套级别“100”,正在中止!在第559行的C:\php\Yii\framework\web\auth\CWebUser.php中,可能我没有正确使用$model->validate(),知道吗