如何从 Laravel 中的 Validator 实例获取经过验证的数据?
How to get validated data from Validator instance in Laravel?
我手动创建了一个 Validator
,但我找不到获取验证数据的方法。
对于 Request
,验证数据 return 来自 $request->validate([...])
对于 FormRequest
,它是 return 来自 $formRequest->validated()
但是对于 Validator
,我没有看到像上面那两个那样的方法。
编写验证逻辑
public function store(Request $request)
{
$validatedData = $request->validate([
'title' => 'required|unique:posts|max:255',
'body' => 'required',
]);
// The blog post is valid...
}
显示验证错误
<!-- /resources/views/post/create.blade.php -->
<h1>Create Post</h1>
@if ($errors->any())
<div class="alert alert-danger">
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
<!-- Create Post Form -->
如果您将 Validator facade 与 make
一起使用,它将 return 一个验证器实例。此验证器实例具有 validate()
、fails()
等方法。您可以在验证器 class 或 the laravel api-documentation.
中查找这些方法
假设您使用的是验证器外观:
use Illuminate\Support\Facades\Validator;
$validator = Validator::make($request->all(), $rules, $messages, $attributes);
if ($validator->fails()) {
return $validator->errors();
}
//If validation passes, return valid fields
return $validator->valid();
https://laravel.com/api/5.5/Illuminate/Validation/Validator.html#method_valid
我手动创建了一个 Validator
,但我找不到获取验证数据的方法。
对于 Request
,验证数据 return 来自 $request->validate([...])
对于 FormRequest
,它是 return 来自 $formRequest->validated()
但是对于 Validator
,我没有看到像上面那两个那样的方法。
编写验证逻辑
public function store(Request $request)
{
$validatedData = $request->validate([
'title' => 'required|unique:posts|max:255',
'body' => 'required',
]);
// The blog post is valid...
}
显示验证错误
<!-- /resources/views/post/create.blade.php -->
<h1>Create Post</h1>
@if ($errors->any())
<div class="alert alert-danger">
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
<!-- Create Post Form -->
如果您将 Validator facade 与 make
一起使用,它将 return 一个验证器实例。此验证器实例具有 validate()
、fails()
等方法。您可以在验证器 class 或 the laravel api-documentation.
假设您使用的是验证器外观:
use Illuminate\Support\Facades\Validator;
$validator = Validator::make($request->all(), $rules, $messages, $attributes);
if ($validator->fails()) {
return $validator->errors();
}
//If validation passes, return valid fields
return $validator->valid();
https://laravel.com/api/5.5/Illuminate/Validation/Validator.html#method_valid