判断主要针对 API 请求和普通页面请求,即 API 的表单验证失败直接响应 JSON,而页面的表单验证失败正常重定向。
看网上基本上是继承 FormRequest
类来实现,其实直接修改异常处理的 Handler
类即可,非常简单。
-
打开
app/Exceptions/Handler.php
文件 -
重写
render($request, Throwable $e)
方法/** * @param Request $request * @param Throwable $e * * @return Response * @throws Throwable */ public function render($request, Throwable $e): \Symfony\Component\HttpFoundation\Response { if ($e instanceof \Illuminate\Validation\ValidationException) { if ($request->route()->getPrefix() === 'api') { // 响应 JSON return response()->json([ 'message' => current($e->errors())[0] ?? '未知错误', 'success' => false ]); } } return parent::render($request, $e); }
-
注意
app/Providers/RouteServiceProvider.php
中boot()
方法内 API 部分的prefix
是否为api
。如果不是则上方判断api
字符串的地方需要修改一下。
本站资源均来自互联网,仅供研究学习,禁止违法使用和商用,产生法律纠纷本站概不负责!如果侵犯了您的权益请与我们联系!
转载请注明出处: 免费源码网-免费的源码资源网站 » Laravel 表单验证功能重定向判断
发表评论 取消回复