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


Posted in PHP onNovember 17, 2021

当我们在使用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时返回首页,一定程度也是一个保护呢。

到此这篇关于Laravel使用验证时跳转到首页的解决办法的文章就介绍到这了,更多相关Laravel验证跳转到首页内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

PHP 相关文章推荐
浅谈Windows下 PHP4.0与oracle 8的连接设置
Oct 09 PHP
PHP中的加密功能
Oct 09 PHP
一次编写,随处运行
Oct 09 PHP
用PHP和ACCESS写聊天室(七)
Oct 09 PHP
PHP 采集程序中常用的函数
Dec 09 PHP
PHP 的异常处理、错误的抛出及回调函数等面向对象的错误处理方法
Dec 07 PHP
PHP生成自定义长度随机字符串的函数分享
May 04 PHP
PHP解压tar.gz格式文件的方法
Feb 14 PHP
Yii统计不同类型邮箱数量的方法
Oct 18 PHP
Yii框架参数化查询中IN查询只能查询一个的解决方法
May 20 PHP
利用php的ob缓存机制实现页面静态化方法
Jul 09 PHP
PHP利用DWZ.CN服务生成短网址
Aug 11 PHP
php png失真的原因及解决办法
Oct 24 #PHP
PHP中国际化的字符串排序和比较对象详解
Aug 23 #PHP
PHP中多字节字符串操作实例详解
Aug 23 #PHP
PHP使用QR Code生成二维码实例
Jul 07 #PHP
PHP设计模式(观察者模式)
Jul 07 #PHP
eval(cmd)与eval($cmd)的区别与联系
用php如何解决大文件分片上传问题
Jul 07 #PHP
You might like
php中使用DOM类读取XML文件的实现代码
2011/12/14 PHP
PHP json_decode函数详细解析
2014/02/17 PHP
zf框架的db类select查询器join链表使用示例(zend框架)
2014/03/14 PHP
PHP中Array相关函数简介
2016/07/03 PHP
Yii2中DropDownList简单用法示例
2016/07/18 PHP
根据key删除数组中指定的元素实现方法
2017/03/02 PHP
基于jquery的finkyUI插件与Ajax实现页面数据加载功能
2010/12/03 Javascript
根据选择不同的下拉值出现相对应的文本输入框
2013/08/01 Javascript
JavaScript将取代AppleScript?
2014/09/18 Javascript
JavaScript获取网页表单action属性的方法
2015/04/02 Javascript
JS实现模拟百度搜索“2012世界末日”网页地震撕裂效果代码
2015/10/31 Javascript
原生JavaScript实现滚动条效果
2020/03/24 Javascript
浅析JS异步加载进度条
2016/05/05 Javascript
NodeJs——入门必看攻略
2016/06/27 NodeJs
JS实现浏览器打印、打印预览示例
2017/02/28 Javascript
react-native ListView下拉刷新上拉加载实现代码
2017/08/03 Javascript
layer弹出层 iframe层去掉滚动条的实例代码
2018/08/17 Javascript
vue实现计步器功能
2019/11/01 Javascript
vue 函数调用加括号与不加括号的区别
2020/10/29 Javascript
[01:01:52]DOTA2-DPC中国联赛定级赛 SAG vs iG BO3第二场 1月9日
2021/03/11 DOTA
python使用多线程不断刷新网页的方法
2015/03/31 Python
python3实现的zip格式压缩文件夹操作示例
2019/08/17 Python
PyCharm 2019.3发布增加了新功能一览
2019/12/08 Python
基于django2.2连oracle11g解决版本冲突的问题
2020/07/02 Python
英国著名音像制品和图书游戏购物网站:Zavvi
2016/08/04 全球购物
美国特价机票专家:Airfarewatchdog
2018/01/24 全球购物
有影响力的人、名人和艺术家的官方商品:Represent
2019/11/26 全球购物
瑞典多品牌连锁店:Johnells
2021/01/13 全球购物
说一下Linux下有关用户和组管理的命令
2014/08/18 面试题
laravel使用redis队列实例讲解
2021/03/23 PHP
vue实现倒计时功能
2021/03/24 Vue.js
会计专业推荐信
2013/10/29 职场文书
采购助理岗位职责
2014/02/16 职场文书
《狮子和兔子》教学反思
2014/03/02 职场文书
党课主持词大全
2015/06/30 职场文书
Redis延迟队列和分布式延迟队列的简答实现
2021/05/13 Redis