巅云php学苑
近期车展
最新发布
快速导航

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

后端开发 / php / 2022-04-03 21:43
visits visits 440 collect - report - QRcode

Basicinformation

content

当我们在使用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 AppHttpRequests;
 
use IlluminateContractsValidationValidator;
use IlluminateFoundationHttpFormRequest;
use IlluminateHttpExceptionsHttpResponseException;
 
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验证跳转到首页内容请搜索IT博客社区以前的文章或继续浏览下面的相关文章希望大家以后多多支持IT博客社区!

notmore

Users comments(0)

rate100%
  • notmore
+ more
  • contacts:
  • area:
  • tel: total(2007)twigs area:unknown

联系我们

合作或咨询可通过如下方式:

QQ/微信:123456

网址:www.xxxx.cn

微信公众号:车展门票

关于本站

「车展网www.xxxxxxx.cn」是一个集全国各地品牌经销车商的平台,让您在所在城市,第一时间收到车展的最新消息,让您的试驾、选车、购车、贷车一步到位,更多优惠直达客户,无需东奔西走,带上中意的车回家,让您省钱,更省心。

Copyright 车展网 www.xxxx.cn Reserved渝ICP备xxxxxxxx号

关注我们