【发布时间】:2015-12-26 09:31:46
【问题描述】:
你能帮我解决这个问题吗?我确实阅读了文档,但规则仍然不起作用。我做错了吗?我仍在寻找一些例子,但仍然没有发生任何事情。我想验证用户的密码和 repeat_password 是否匹配。
这是我在模型中的代码。 在那种情况下,这两个也被声明为必需的。
[['password','password_repeat'], 'checkPassword', 'on'=>'create'],
该场景也在 actionCreate 上声明。
public function checkPassword($attributes, $params)
{
if(!$this->password_repeat === $this->password)
{
$this->addError($attribute, 'Passwords do not match!');
}
}
我确实尝试在这两个字段上使用compare 验证,但它不会让我满意。如果您只比较一个字段,则不会验证另一个字段。如果您同时验证它们,当您删除您在两个字段之一中输入的内容时,它们仍有可能相互对比。因此,我想创建一个,即使您删除了在这两个字段中输入的内容,无论谁先行,他们都将被验证。抱歉,添麻烦了。我希望你仍然得到我想要发生的事情。谢谢。
PS,我不想使用密码验证器小部件(?)。谢谢。
【问题讨论】:
-
提示:在你的代码中有一个参数
$attributes,它应该是$attribute。 -
@robsch 仍然一无所获。它没有触发验证
-
你的条件不对!应该是
$this->password_repeat !== $this->password
标签: php validation yii2 custom-validators