据我所知,当任何规则的验证失败时,Laravel将以422响应。
如果我只对某些规则失败感兴趣,比如“独特”? 由于“唯一”规则,如何检查某个输入字段是否未通过验证?
答案 0 :(得分:0)
您仍然会收到所有验证错误,只要您发送正确的标题 - 您就是这样,否则您将无法获得422
。
然后以这种格式返回验证错误:
{
errors: {
field1: ["Field 1 must be unique", /* other failures */],
// ... other fields
},
message: "The given data was invalid"
}
错误代码422
是正确的(由Laravel的验证失败返回)并且表明实际上存在错误。
您只需在JavaScript中的响应对象上调用response.data
即可访问返回的数据(至少使用Axios)。
答案 1 :(得分:0)
您可以轻松检查js代码中的返回json参数,但如果您想要自定义响应,则可以在验证laravel控制器中的字段时操作响应。
检查控制器中返回的失败规则数组中的特定规则:
if ($validator->fails()) {
$failedRules = $validator->failed();
if(isset($failedRules['email_address']['Unique'])) {
...
通过这种方式,您可以找到特定的失败(在此示例中,电子邮件地址必须是唯一的)并执行您自己的操作并返回响应。