我在模型中写了规则:
public $password_repeat;
/**
* @inheritdoc
*/
public function rules()
{
return [
....
....
['password', 'required'],
['password', 'string', 'min' => 6],
['password_repeat', 'compare', 'compareAttribute'=>'password', 'message'=>"Passwords don't match" ],
];
}
Run Code Online (Sandbox Code Playgroud)
如果我使用不同的密码Password
和Password Repeat
领域,它提供了错误.所以,这意味着它有效.但问题是,如果Password Repeat
字段为空,它不会给出任何错误.
ark*_*oak 24
同时为password_repeat添加必需的标记.如下所示
return [
....
['password', 'required'],
['password', 'string', 'min' => 6],
['password_repeat', 'required'],
['password_repeat', 'compare', 'compareAttribute'=>'password', 'message'=>"Passwords don't match" ],
];
Run Code Online (Sandbox Code Playgroud)
小智 9
另一种方法是将$ skipOnEmpty变量设置为false:
return [
....
['password', 'required'],
['password', 'string', 'min' => 6],
['password_repeat', 'compare', 'compareAttribute'=>'password', 'skipOnEmpty' => false, 'message'=>"Passwords don't match"],
];
Run Code Online (Sandbox Code Playgroud)
这样做的好处是,如果密码中也包含值,则只允许重复密码字段.
归档时间: |
|
查看次数: |
15510 次 |
最近记录: |