我使用Laravel内置验证器,我想获得第一条错误消息
if ($validator->fails()) {
$error = $validator->messages()->toJson();
.....
}
Run Code Online (Sandbox Code Playgroud)
这是我打印错误时的结果
{"name":["The name must be at least 5 characters."],"alamat":["The address must be at least 5 characters."]}
Run Code Online (Sandbox Code Playgroud)
在上面的例子中,我想得到第一个错误,即"名称必须至少为5个字符.".我怎样才能做到这一点?
rom*_*e 웃 17
试试这个:
if ($validator->fails()) {
$error = $validator->errors()->first();
}
Run Code Online (Sandbox Code Playgroud)
根据 2019 Laravel 5.8 及更高版本,从验证器获取所有错误消息就像这样简单:
// create the validator and make a validation here...
if ($validator->fails()) {
$fieldsWithErrorMessagesArray = $validator->messages()->get('*');
}
Run Code Online (Sandbox Code Playgroud)
您将获得字段名称和错误消息的数组数组。像这样的东西:
[
'price'=>
[
0 => 'Price must be integer',
1 => 'Price must be greater than 0'
]
'password' => [
[
0 => 'Password is required'
]
]
]
Run Code Online (Sandbox Code Playgroud)
您可以使用Illuminate\Support\MessageBag
该类提供的其他验证消息 getter (它实际上是$validator->messages()
上面返回的对象类型)。
消息袋错误消息附加助手
去your_laravel_project_dir/vendor/illuminate/support/MessageBag.php
找到像一些有用的方法keys
,has
,hasAny
,first
,all
,isEmpty
等,你可以同时检查特定的验证错误和自定义HTTP响应消息的需要。
通过查看源代码很容易理解它们的作用。这是Laravel 5.8 API 参考,虽然可能不如源代码有用。
在您的 ajax 请求中,当您收到 时data
,请尝试data.name
.
这将为您提供该字段的错误消息name
。
$.ajax({
url: "/your-save-url",
type: "post",
data: serializedData,
success: function(data) { alert(data.name)}
});
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
28301 次 |
最近记录: |