laravel框架使用FormRequest進行表單驗證,驗證異常返回JSON操作示例
阿新 • • 發佈:2020-02-19
本文例項講述了laravel框架使用FormRequest進行表單驗證,驗證異常返回JSON操作.分享給大家供大家參考,具體如下:
通常在專案中,我們會對大量的前端提交過來的表單進行驗證,如果不通過,則返回錯誤資訊。
前端為了更好的體驗,都使用ajax進行表單提交,雖然 validate()
方法能夠根據前端的不同請求方式,返回不同的結果。
但是返回的json格式並不是我們想要的,這個時候,我們就需要自定義返回錯誤結果。
先建立一個表單請求類:
php artisan make:request TestRequest
然後在 rules()
和 messages()
方法裡填寫自已的驗證規則和訊息
<?php namespace App\Http\Requests; use Illuminate\Foundation\Http\FormRequest; use Illuminate\Contracts\Validation\Validator; use Illuminate\Http\Exceptions\HttpResponseException; class TestRequest extends FormRequest { /** * 控制訪問許可權 */ public function authorize() { //注意,預設是false,改成true return true; } /** * 驗證規則 */ public function rules() { return [ 'name' => 'required','pwd' => 'required',]; } /** * 驗證訊息 */ public function messages() { return [ 'name.required' => '姓名必填','pwd.required' => '密碼必填',]; } }
注意,父類 FormRequest中的 failedValidation()
方法用來處理驗證失敗,我們重寫父類方法,來實現自已的返回。
public function failedValidation(Validator $validator) { throw (new HttpResponseException(response()->json([ 'status_code' => 500,'message' => '請求錯誤','data' => $validator->errors()->first(),],200))); }
注意 failedValidation()
更多關於Laravel相關內容感興趣的讀者可檢視本站專題:《Laravel框架入門與進階教程》、《php優秀開發框架總結》、《php面向物件程式設計入門教程》、《php+mysql資料庫操作入門教程》及《php常見資料庫操作技巧彙總》
希望本文所述對大家基於Laravel框架的PHP程式設計有所幫助。