我尝试使用Sirius form validator来验证登录表单。我遇到getMessages()
只有一次只返回一个错误的问题。文档显示此方法应该返回所有错误消息。
如果我导航到包含登录表单的页面并填写表单,将电子邮件和密码留空,则Sirius仅返回一条错误消息。电子邮件错误。正如您从代码中看到的那样,我正在使用required
检查电子邮件和密码是否存在。
如果我重复提交表单,并且只将密码字段留空,则Sirius会返回需要密码的错误。
表格
<div class="form-group">
<label for="email">Email address</label>
<input type="email" class="form-control" name="email" id="email" placeholder="Email">
</div>
<div class="form-group">
<label for="password">Password</label>
<input type="password" class="form-control" name="password" id="password" placeholder="Password">
</div>
<input type="hidden" name="{{ name_key }}" value="{{ name_value }}">
<input type="hidden" name="{{ value_key }}" value="{{ value_value }}">
<button type="submit" class="btn btn-default">Submit</button>
用于验证表单的代码:
/*
* Validate user input
*/
$validator = new \Sirius\Validation\Validator;
$validator->add(
array(
'email:Email address' => 'required | email',
'password:Password' => 'required'
)
);
if (!$validator->validate($request->getParsedBody())) {
print_r($validator->getMessages());
}
输出:
Array ( [email] => Array ( [0] => Sirius\Validation\ErrorMessage Object ( [template:protected] => {label} is required [variables:protected] => Array ( [label] => Email address [value] => ) ) ) )
任何想法我做错了什么?