Laravel 8 手动创建验证器
如果您不想再请求中使用 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 数组
。