我的项目中有一个名为Customer的成员。我需要验证PasswordField。
我在我的页面中创建了一个包含PasswordField的函数,如下所示
function getValidator() {
$data = $this->loadData();
if (@$data['Password']->minLength(7)) {
return $this->validationError('Password', 'Password field should contain minimum 7 charactors', 'bad');
}
}
这不会给出任何结果。我如何使这个工作?
答案 0 :(得分:1)
从代码中删除那个丑陋的@
并观看这个漂亮的错误消息。错误抑制是一种非常糟糕的做法,你应该避免这种情况
PasswordValidator
对象已经使用了一个类Member
,可以检查密码的最小长度。 (See API Docs for PasswordValdiator)
如果您向我们展示更多代码,我可以尝试帮助您正确实施。
您的Customer
对象是会员的子类吗?密码在哪里更改?什么FormField用于密码?还有一个ConfirmedPasswordField显示两个用于匹配密码的屏蔽字段,您可以在其中设置最小长度。
因此,假设您将密码保存在名为Password
的字段中,您可以设置字段,例如
$passwordField = ConfirmedPasswordField('Password', 'Choose a password');
$passwordField->minLength = 7; //there is no setter method for that right now
然后使用
将$ passwordField添加到FieldList
$fields->push($passwordField);