Laravel 8 - 간단한 사용자 지정 유효성 검사 규칙 예제

15831 단어 laravelphpmysql
원래 게시된 @https://codeanddeploy.com 방문하여 샘플 코드 다운로드: https://codeanddeploy.com/blog/laravel/laravel-8-simple-custom-validation-rules-example

이 게시물에서는 Laravel 8에서 간단한 사용자 지정 유효성 검사 규칙을 만드는 방법을 공유할 것입니다. Laravel은 웹 애플리케이션 개발 속도를 높이는 데 도움이 되는 즉시 사용 가능한 유효성 검사를 제공합니다. 그러나 때때로 우리는 우리의 필요에 적합한 Laravel 기본값을 넘어서는 자체 유효성 검사를 만들어야 합니다. 따라서 이 게시물의 예에서는 입력된 출생 연도를 확인하고 1990년부터 현재 연도까지만 수락합니다. 사용자가 1990년보다 작거나 현재 연도보다 많은 날짜를 제공하면 유효성 검사 오류가 발생합니다.



따라서 Laravel이 이미 설치되어 있다고 가정하고 설치 프로세스를 건너뛰고 샘플 컨트롤러를 생성하겠습니다.

1단계: 컨트롤러 만들기



다음 명령을 실행하여 컨트롤러를 만듭니다.

php artisan make:controller CustomValidationController


2단계: 사용자 지정 유효성 검사 규칙에 대한 경로 만들기



다음은 샘플 경로 또는 사용자 지정 유효성 검사 규칙입니다.

/**
* Custom validation routes
*/
Route::get('/custom-validation', 'CustomValidationController@show');
Route::post('/custom-validation', 'CustomValidationController@perform')->name('custom-validation');



3단계: 요청 만들기



다음에 사용자 지정 유효성 검사 규칙을 호출하기 위한 요청을 생성해야 합니다. 다음 명령을 실행하여 수행하십시오.

php artisan make:request InfoRequest


4단계: 컨트롤러 메서드 만들기



아래 사용자 지정 유효성 검사 규칙 컨트롤러 메서드를 참조하세요.

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Http\Requests\InfoRequest;

class CustomValidationController extends Controller
{
    public function show() 
    {
        return view('test.custom-validation');
    }

    public function perform(InfoRequest $request) 
    {
        // Save after validated
    }
}


5단계: 뷰 만들기



아래 내 샘플 보기를 참조하십시오.

@extends('layouts.app-master')

@section('content')
    <div class="bg-light p-5 rounded">
        <h1>Laravel Custom Validation Rule by CodeAndDeploy.com</h1>

        <form method="post" action="{{ route('custom-validation') }}">
            <input type="hidden" name="_token" value="{{ csrf_token() }}" />

            <div class="form-group form-floating mb-3">

                <div class="form-group">
                    <label>Full name</label>
                    <input type="text" 
                        name="name" 
                        placeholder="Name" 
                        class="form-control" 
                        value="{{ old('name') }}">
                    @if ($errors->has('name'))
                        <span class="text-danger text-left">{{ $errors->first('name') }}</span>
                    @endif
                </div>

                <div class="form-group mt-3">
                    <label>Birth Year</label>
                    <input type="number" 
                        name="birth_year" 
                        placeholder="E.g. 1990" 
                        class="form-control"
                        value="{{ old('birth_year') }}"
                        maxlength="4">
                    @if ($errors->has('birth_year'))
                        <span class="text-danger text-left">{{ $errors->first('birth_year') }}</span>
                    @endif
                </div>

            </div>

            <button class="w-100 btn btn-lg btn-primary" type="submit">Save</button>
        </form>
    </div>
@endsection


6단계: 유효성 검사 규칙 및 사용자 지정 규칙 추가



먼저 아래의 명령을 실행합니다.

php artisan make:rule BirthYearRule


둘째, BirthYearRule에 사용자 지정 규칙을 추가해 보겠습니다.

<?php

namespace App\Rules;

use Illuminate\Contracts\Validation\Rule;

class BirthYearRule implements Rule
{
    /**
     * Create a new rule instance.
     *
     * @return void
     */
    public function __construct()
    {
        //
    }

    /**
     * Determine if the validation rule passes.
     *
     * @param  string  $attribute
     * @param  mixed  $value
     * @return bool
     */
    public function passes($attribute, $value)
    {
        return $value >= 1990 && $value <= date('Y');
    }

    /**
     * Get the validation error message.
     *
     * @return string
     */
    public function message()
    {
        return 'The :attribute must be between 1990 to '.date('Y').'.';
    }
}


셋째, Laravel 기본값과 사용자 지정 유효성 검사에서 양식 유효성 검사를 작성해 보겠습니다. 전체 코드는 아래를 참조하세요.

<?php

namespace App\Http\Requests;

use App\Rules\BirthYearRule;
use Illuminate\Foundation\Http\FormRequest;

class InfoRequest extends FormRequest
{
    /**
     * 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 [
            'name' => 'required',
            'birth_year' => [
                'required',
                new BirthYearRule()
            ]
        ];
    }
}


'birth_year' 배열 값에서 볼 수 있듯이 사용자 지정 유효성 검사 규칙을 호출하기 위해 새로운 BirthYearRule() 클래스를 추가했습니다.

이제 적용하고 실행하십시오.

이 튜토리얼이 도움이 되었으면 합니다. 이 코드를 다운로드하려면 여기https://codeanddeploy.com/blog/laravel/laravel-8-simple-custom-validation-rules-example를 방문하십시오.

행복한 코딩 :)

좋은 웹페이지 즐겨찾기