在 laravel 5.1 中 可以在 BaseController 中重写
/**
* {@inheritdoc}
*/
protected function buildFailedValidationResponse(Request $request, array $errors)
{
return new JsonResponse($errors);
}
可以实现拦截$this->validate($request,$rules,$messages);
方法的自动跳转
现在在 laravel 5.5 中没有了这个方法,现在该怎么修改?
我自己回答这个问题吧,希望以后那些自己不能提出解决方案只会说教别人的嘴炮都闭嘴吧。
一. 仍然使用 控制器 中的
$request->validate($rules);
进行校验,在表单输入不合法的时候,会抛出一个throw new ValidationException();
错误,可以在App\Exceptions\Handler
的render()
方法中去捕获它二. 我们不使用 request 对象中的 validate 方法,自己构造一个验证
推荐使用第一个解决方案,仍然可以达到之前的效果,代码修改量也最小。