Laravel의 FormRequest에서 오류 처리 재정의 소개(코드 예)

不言
풀어 주다: 2019-01-09 10:00:25
앞으로
3100명이 탐색했습니다.

이 글은 Laravel의 FormRequest에서 오류 처리를 다시 작성하는 방법(코드 예제)을 소개합니다. 이는 특정 참고 가치가 있으므로 도움이 필요한 친구에게 도움이 되기를 바랍니다.

laravel 프레임워크의 기본 유효성 검사는 오류 처리 시 기본적으로 이전 페이지로 돌아가고, 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 형식으로 오류가 발생합니다. failedValidation方法,将抛出错误处理为了json格式的。
然后在自定义的处理验证类中,继承该类就行了,
如:RegisterForm그런 다음 사용자 정의 처리 확인 클래스에서 이 클래스를 상속받습니다.

예: 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으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿