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

admin3年前PHP教程95

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

1、直接在请求头中

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

2、修改框架函数?

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






3、建议使用

定义一个BaseRequest基类

?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?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验证跳转到首页内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:blog.csdn/woshissss/article/details/120397036

免责声明:本文内容来自用户上传并发布,站点仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。请核实广告和内容真实性,谨慎使用。

相关文章

如何选择境外多IP服务器呢

随着站群服务器在国内的受欢迎程度不断增加,越来越多的企业开始倾向于选择站群服务器,但是由于国内IP资源的稀缺,很多的国内站长开始把目光转向了境外多IP服务器。境外多IP服务器不仅拥有着大量的IP资源,...

美国多ip服务器租用多久呢

美国多IP服务器的租用时间通常由服务器提供商根据客户需求和服务计划而定。以下是一些可能的租用时间选项:按小时租用:适用于需要短暂使用美国多IP服务器的客户,通常是测试、开发、演示或短期项目。按日租用:...

php中日期类型转换实例讲解

1、使用date()函数将UNIX时间戳转换为日期。2、使用strtotime()函数将日期转换为UNIX时间戳。在PHP中是可以完成日期格式转换的,不过有一个缺点就是占用PHP解析器的解析时间,因此...

详解Laravel框架的依赖注入功能

目录概述真实的例子结论概述任何时候,你在一个控制器类中请求一个依赖,这个服务容器负责:1.自动地在构造函数中检测依赖关系2.如果需要构建这个依赖关系3.通过构造函数创建对象形成依赖关系来看一个非常简单...

php类自动加载失败的处理方案及实例代码

1、打开相应的PHP代码文件。2、添加“$class = str_replace("\\","/",$class);”代码即可。文件在本...

Thinkphp6.0中间件的具体使用

目录全局中间件 应用中间件 路由中间件 控制器中间件 中间件传参 6.0中间件分为系统中间件和应用中间件,系统中间件为核心框架内置的中间件,应用中间件是在应用里面创建的中间件。中间件的主要应用场景可以...