解決Laravel使用驗(yàn)證時(shí)跳轉(zhuǎn)到首頁(yè)的問(wèn)題
當(dāng)我們?cè)谑褂胿alidate等方法進(jìn)行驗(yàn)證時(shí),如果是錯(cuò)誤,則會(huì)返回首頁(yè)
1、直接在請(qǐng)求頭中
在請(qǐng)求頭header中,accept使用appclication/json,使HTTP請(qǐng)求的接受返回只能是json格式。
2、修改框架函數(shù)
//vendor/laravel/framework/src/Illuminate/Foundation/Http/FormRequest.php:136 //將該方法中的$this->getRedirectUrl()去掉 //不建議使用,一般情況下盡量不要修改框架的代碼
3、建議使用
定義一個(gè)BaseRequest基類(lèi)
<?php namespace AppHttpRequests; use IlluminateContractsValidationValidator; use IlluminateFoundationHttpFormRequest; use IlluminateHttpExceptionsHttpResponseException; class BaseRequests extends FormRequest { /** * validate驗(yàn)證失敗模板 * @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' => [] ]))); } }
個(gè)人認(rèn)為這個(gè)方法一言難盡,不是很好。
4、最終我使用的解決辦法
在JSON請(qǐng)求時(shí),頭部的Accept指定為appliaction/json即可解決,當(dāng)為JSON訪問(wèn)時(shí),則返回錯(cuò)誤信息正常,非JSON時(shí)返回首頁(yè),一定程度也是一個(gè)保護(hù)呢。
到此這篇關(guān)于Laravel使用驗(yàn)證時(shí)跳轉(zhuǎn)到首頁(yè)的解決辦法的文章就介紹到這了,更多相關(guān)Laravel驗(yàn)證跳轉(zhuǎn)到首頁(yè)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
版權(quán)聲明:
本站所有文章和圖片均來(lái)自用戶(hù)分享和網(wǎng)絡(luò)收集,文章和圖片版權(quán)歸原作者及原出處所有,僅供學(xué)習(xí)與參考,請(qǐng)勿用于商業(yè)用途,如果損害了您的權(quán)利,請(qǐng)聯(lián)系網(wǎng)站客服處理。