如何从Laravel中的Validator实例获取经过验证的数据?

时间:2017-12-10 03:40:16

标签: php validation laravel-5.5

我手动创建了Validator,但我找不到获取验证数据的方法 对于Request,经验证的数据从$request->validate([...])返回 对于FormRequest,它从$formRequest->validated()返回 但是对于Validator,我没有看到类似上述方法的方法。

3 个答案:

答案 0 :(得分:4)

假设您正在使用Validator外观:

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

答案 1 :(得分:3)

如果将Validator门面与make一起使用,它将返回验证器实例。此验证程序实例具有validate()fails()等方法。您可以在验证器类或the laravel api-documentation中查看这些方法。

答案 2 :(得分:1)

编写验证逻辑

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 -->