我有一个自定义登录表单,该表单使用API验证凭据。一切正常,除了如果我将用户名/电子邮件字段保留为空白并输入密码,API调用仍应发送,但应在此之前停止。
我看了规则bail
,required_with
(及其他类似规则),但都不符合要求。
有没有办法只提供验证消息:
“标识符”字段为必填项。
代替
“标识符”字段为必填项。
对不起,这不是与您的标识符关联的密码。请检查并重试。
(如果用户名/电子邮件为空,是否停止密码验证?
根据请求的控制器代码(ApiMemberPassword
只是一个自定义规则,用于发送带有用户名和密码的API请求,如果identifier
为空,则无用):
$validator = Validator::make($request->all(), [
'identifier' => ['required'],
'password' => ['bail', 'required', new ApiMemberPassword],
]);
答案 0 :(得分:2)
像这样使用它:
$this->validate($request, [
'identifier' => 'bail|required',
'password' => ['required', new ApiMemberPassword],
]);
答案 1 :(得分:0)
由于您尚未共享任何代码,这是我的建议:
至于仅针对电子邮件字段返回错误,则无法使用内置laravel验证。参见线程here
这仅仅是因为,通常为了获得良好的用户体验,应该立即显示与表单失败有关的所有错误,以便用户可以更正所有错误并在下次提交正确的表单。当完全可以完成时,没有必要对5个不同的提交进行5次校正。有道理吗?
但是,如果您确实需要此功能,则只有两个字段,您可以进行自定义验证,首先检查电子邮件,然后检查密码,或者只需两次使用Laravel内置验证。