当前位置:首页 > CMS教程 > 其它CMS > 列表

解决Laravel使用验证时跳转到首页的问题

发布:smiling 来源: PHP粉丝网  添加日期:2022-05-16 09:10:49 浏览: 评论:0 

当我们在使用validate等方法进行验证时,如果是错误,则会返回首页,那么这个跳转到首页如何实现的呢?今天小编给大家分享一篇教程关于Laravel使用验证时跳转到首页的解决办法,一起看看吧。

当我们在使用validate等方法进行验证时,如果是错误,则会返回首页

1、直接在请求头中

在请求头header中,accept使用appclication/json,使HTTP请求的接受返回只能是json格式。

2、修改框架函数

//vendor/laravel/framework/src/Illuminate/Foundation/Http/FormRequest.php:136

//将该方法中的$this->getRedirectUrl()去掉

//不建议使用,一般情况下尽量不要修改框架的代码

3、建议使用

定义一个BaseRequest基类

  1. <?php 
  2.       
  3. namespace App\Http\Requests; 
  4.    
  5. use Illuminate\Contracts\Validation\Validator; 
  6. use Illuminate\Foundation\Http\FormRequest; 
  7. use Illuminate\Http\Exceptions\HttpResponseException; 
  8.    
  9. class BaseRequests extends FormRequest 
  10.     /** 
  11.      * validate验证失败模板 
  12.      * @param Validator $validator 
  13.      */ 
  14.     protected function failedValidation(Validator $validator
  15.     { 
  16.         $message = ''
  17.         foreach (json_decode(json_encode($validator->errors()),1) as $error){ 
  18.             $message = $error[0]; 
  19.             break
  20.         } 
  21.         throw (new HttpResponseException(response()->json([ 
  22.             'code' => 400, 
  23.             'msg'  => $message
  24.             'data' => [] 
  25.         ]))); 
  26.     } 

个人认为这个方法一言难尽,不是很好。

4、最终我使用的解决办法

在JSON请求时,头部的Accept指定为appliaction/json即可解决,当为JSON访问时,则返回错误信息正常,非JSON时返回首页,一定程度也是一个保护呢。

Tags: Laravel验证跳转到首页

分享到: