阅读(4747) (11)

Laravel 8 手动创建验证器

2021-06-25 11:18:23 更新

如果您不想再请求中使用 validate 方法,您可以使用 Validator 门面 手动创建一个验证器实例。门面中的 make 方法将会生成一个新的验证器实例:

<?php

namespace App\Http\Controllers;

use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Validator;

class PostController extends Controller
{
    /**
     * 存储一篇博客文章
     *
     * @param  Request  $request
     * @return Response
     */
    public function store(Request $request)
    {
        $validator = Validator::make($request->all(), [
            'title' => 'required|unique:posts|max:255',
            'body' => 'required',
        ]);

        if ($validator->fails()) {
            return redirect('post/create')
                        ->withErrors($validator)
                        ->withInput();
        }

        // Store the blog post...
    }
}

make 方法中的第一个参数是期望校验的数据。第二个参数是应用到数据上的校验规则。

如果校验失败,您可以使用 withErrors 方法将错误信息闪存至 session 中。使用该方法时, $errors 会自动与之后的视图共享,您可以很方便将其回显给用户。withErrors 方法接受验证器实例, MessageBag 或是 PHP 数组