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

当咱们在应用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基类

<?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时返回首页,肯定水平也是一个爱护呢。

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理