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

作者:PHP是宇宙中最好的语言 时间:2023-07-12 09:02:13 

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

1、直接在请求头中

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

2、修改框架函数


//vendor/laravel/framework/src/Illuminate/Foundation/Http/FormRequest.php:136
//将该方法中的$this->getRedirectUrl()去掉
//不建议使用,一般情况下尽量不要修改框架的代码

3、建议使用

定义一个BaseRequest基类


<?php
   
namespace App\Http\Requests;

use Illuminate\Contracts\Validation\Validator;
use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Http\Exceptions\HttpResponseException;

class BaseRequests extends FormRequest
{
   /**
    * validate验证失败模板
    * @param Validator $validator
    */
   protected function failedValidation(Validator $validator)
   {
       $message = '';
       foreach (json_decode(json_encode($validator->errors()),1) as $error){
           $message = $error[0];
           break;
       }
       throw (new HttpResponseException(response()->json([
           'code' => 400,
           'msg'  => $message,
           'data' => []
       ])));
   }
}

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

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

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

来源:https://blog.csdn.net/woshissss/article/details/120397036

标签:Laravel,验证,跳转,首页
0
投稿

猜你喜欢

  • 深入浅析python中的多进程、多线程、协程

    2022-06-05 15:59:27
  • Python实现动态添加类的属性或成员函数的解决方法

    2021-05-13 17:13:41
  • MySQL做读写分离提高性能缓解数据库压力

    2024-01-27 14:36:19
  • PyTorch的SoftMax交叉熵损失和梯度用法

    2023-06-17 12:46:49
  • Django开发RESTful API实现增删改查(入门级)

    2022-05-17 02:36:53
  • 全文译稿 Windows Internet Explorer 8 性能优化白皮书

    2010-04-23 20:13:00
  • 用ASP和SQL实现基于Web日历源码

    2010-04-24 15:52:00
  • node.js express安装及示例网站搭建方法(分享)

    2024-05-13 09:58:22
  • document.getElementById的简写方式

    2010-06-21 10:44:00
  • vue前端项目打包成Docker镜像并运行的实现

    2023-07-02 17:05:55
  • 通过自学python能找到工作吗

    2021-07-24 04:26:33
  • PHP计算字符串真正的宽度和高度像素(图片加文字水印示例)

    2023-05-28 06:48:44
  • 6个卓越Web设计细节[译]

    2010-03-24 18:34:00
  • 使用PHP获取网络文件的实现代码

    2023-09-09 08:41:53
  • 浏览器根据什么来判定脚本失控?[译]

    2009-02-20 13:36:00
  • Postman返回中文乱码的解决方案

    2022-03-16 15:03:02
  • pytorch教程网络和损失函数的可视化代码示例

    2023-11-26 16:13:51
  • mysql事务管理操作详解

    2024-01-20 10:35:29
  • python udp如何实现同时收发信息

    2023-12-16 10:06:33
  • Mysql的最大连接数怎样用java程序测试

    2009-01-14 12:05:00
  • asp之家 网络编程 m.aspxhome.com