当咱们在应用 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 时返回首页,肯定水平也是一个爱护呢。