解決Laravel使用驗證時跳轉(zhuǎn)到首頁的問題
當我們在使用validate等方法進行驗證時,如果是錯誤,則會返回首頁
1、直接在請求頭中
在請求頭header中,accept使用appclication/json,使HTTP請求的接受返回只能是json格式。
2、修改框架函數(shù)
//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時返回首頁,一定程度也是一個保護呢。
到此這篇關(guān)于Laravel使用驗證時跳轉(zhuǎn)到首頁的解決辦法的文章就介紹到這了,更多相關(guān)Laravel驗證跳轉(zhuǎn)到首頁內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
詳解Laravel5.6通過路由進行API版本控制的簡單方法
這篇文章主要介紹了詳解Laravel5.6通過路由進行API版本控制的簡單方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-01-01分享ThinkPHP3.2中關(guān)聯(lián)查詢解決思路
這篇文章主要介紹了ThinkPHP3.2中關(guān)聯(lián)查詢解決思路的相關(guān)資料,需要的朋友可以參考下2015-09-09PHP+swoole實現(xiàn)簡單多人在線聊天群發(fā)
這篇文章主要介紹了PHP+swoole實現(xiàn)簡單多人在線聊天群發(fā) 的相關(guān)資料,需要的朋友可以參考下2016-01-01php實現(xiàn)文件下載簡單示例(代碼實現(xiàn)文件下載)
這篇文章主要介紹了php實現(xiàn)文件下載簡單示例,需要的朋友可以參考下2014-03-03