首頁 > php框架 > Laravel > 主體

Laravel中FormRequest中重寫錯誤處理的介紹(程式碼範例)

不言
發布: 2019-01-09 10:00:25
轉載
3101 人瀏覽過

這篇文章帶給大家的內容是關於Laravel中FormRequest中重寫錯誤處理的介紹(程式碼範例),有一定的參考價值,有需要的朋友可以參考一下,希望對你有幫助。

laravel 框架中預設的validate驗證,在處理錯誤的時候,預設是返回上一頁,當為ajax的時候才會回傳Json。如果我們要一直回傳Json的話,那麼需要重寫錯誤處理

如下:在Requests目錄只用新建BaseRequest類別

Laravel中FormRequest中重寫錯誤處理的介紹(程式碼範例)

#程式碼如下

<?php /**
 * @文件名称: BaseRequest.php.
 * @author: daisc
 * @email: jiumengfadian@live.com
 * @Date: 2019/1/8
 */

namespace App\Http\Requests\Front;


use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Http\Exceptions\HttpResponseException;

class BaseRequest extends FormRequest
{

    public function failedValidation($validator)
    {

        $error= $validator->errors()->all();
       // $error = $validator;

        throw  new HttpResponseException(response()->json(['code'=>1,'message'=>$error[0]]));

    }


}
登入後複製

重寫了failedValidation方法,將拋出錯誤處理為了json格式的。
然後在自訂的處理驗證類別中,繼承該類別就行了,
如:RegisterForm

<?php namespace App\Http\Requests\Front;



class RegisterForm extends BaseRequest
{
    /**
     * Determine if the user is authorized to make this request.
     *
     * @return bool
     */
    public function authorize()
    {
        return true;
    }

    /**
     * Get the validation rules that apply to the request.
     *
     * @return array
     */
    public function rules()
    {
        return [
            &#39;phone&#39;=>'required|regex:"^1\d{10}"',
            'email' => 'required|email',
            'password'=>'required|confirmed'
        ];
    }

    public function messages()
    {
        return [
            'phone.required'=>'手机号不能为空',
            'phone.regex'=>'请输入正确的手机号',
        ];

    }



}
登入後複製

當我們在控制器中呼叫RegisterForm的時候,就回返回Json格式的錯誤訊息。
不分是否是AJAX

Laravel中FormRequest中重寫錯誤處理的介紹(程式碼範例)

以上是Laravel中FormRequest中重寫錯誤處理的介紹(程式碼範例)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:segmentfault.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板