>PHP 프레임워크 >Laravel >Laravel에서 사용자 정의 검증 규칙을 어떻게 작성하고 사용하려면?

Laravel에서 사용자 정의 검증 규칙을 어떻게 작성하고 사용하려면?

百草
百草원래의
2025-03-17 14:38:27326검색

Laravel에서 사용자 정의 검증 규칙을 어떻게 작성하고 사용하려면?

Laravel에서 사용자 정의 검증 규칙을 작성하고 사용하려면 다음을 수행 할 수 있습니다.

  1. 사용자 정의 규칙 정의 :

    • 규칙 객체를 사용하여 사용자 정의 유효성 검사 규칙을 정의 할 수 있습니다. Illuminate\Validation\Rules\Rule 확장하는 새 클래스를 만듭니다. 예를 들어, 필드에 특정 단어가 포함되어 있는지 확인하려면 ContainsWord 라는 클래스를 만들 수 있습니다.

       <code class="php">use Illuminate\Contracts\Validation\Rule; class ContainsWord implements Rule { private $word; public function __construct($word) { $this->word = $word; } public function passes($attribute, $value) { return stripos($value, $this->word) !== false; } public function message() { return "The :attribute must contain the word :word."; } }</code>
  2. 사용자 정의 규칙 사용 :

    • 컨트롤러 또는 양식 요청에서 사용자 정의 규칙을 사용하려면 규칙을 인스턴스화하여 validate 메소드로 전달할 수 있습니다.

       <code class="php">use App\Rules\ContainsWord; $request->validate([ 'title' => ['required', new ContainsWord('Laravel')], ]);</code>
  3. 양식 요청에서 사용자 정의 규칙 사용 :

    • 양식 요청을 사용하는 경우 rules 방법에 규칙을 포함시킬 수 있습니다.

       <code class="php">use App\Rules\ContainsWord; use Illuminate\Foundation\Http\FormRequest; class StorePostRequest extends FormRequest { public function rules() { return [ 'title' => ['required', new ContainsWord('Laravel')], ]; } }</code>

Laravel에서 사용자 정의 검증 규칙을 사용하면 어떤 이점이 있습니까?

Laravel에서 사용자 정의 검증 규칙을 사용하면 몇 가지 이점이 있습니다.

  1. 재사용 :

    • 애플리케이션의 여러 부분에서 사용자 정의 유효성 검사 규칙을 재사용하여 코드 복제를 줄이고 코드베이스를보다 유지 관리 할 수 ​​있습니다.
  2. 표현력 :

    • 사용자 정의 규칙을 사용하면 유효성 검사 로직을보다 표현하고 명확하게 만들 수 있으므로 다른 개발자가 검증 요구 사항을 쉽게 이해할 수 있습니다.
  3. 특성:

    • Laravel이 제공 한 기본 유효성 검사 규칙 세트에서 사용할 수없는 매우 구체적인 유효성 검증 요구 사항을 정의하여보다 정확한 데이터 검증이 가능합니다.
  4. 일관성:

    • 비즈니스 로직과 일치하는 규칙을 정의함으로써 응용 프로그램의 검증이 일관성이 유지되어 데이터 오류 가능성을 줄입니다.
  5. 테스트 가능성 :

    • 사용자 정의 규칙은 쉽게 단위로 테스트 할 수 있으므로 유효성 검사 로직이 올바르게 작동하는지 확인하는 데 도움이됩니다.

내 사용자 지정 규칙으로 Laravel의 검증 시스템을 어떻게 확장 할 수 있습니까?

고유 한 사용자 정의 규칙으로 Laravel의 검증 시스템을 확장하려면 다음을 수행 할 수 있습니다.

  1. 규칙 개체 사용 :

    • 앞에서 언급했듯이 Illuminate\Validation\Rules\Rule 확장하는 클래스를 만들 수 있습니다. 이것은 복잡한 규칙에 선호되는 방법입니다.
  2. 클로저 사용 :

    • 간단한 규칙의 경우 유효성 검사 규칙 내에서 폐쇄를 정의 할 수 있습니다.

       <code class="php">$request->validate([ 'title' => [ 'required', function ($attribute, $value, $fail) { if (stripos($value, 'Laravel') === false) { $fail('The '.$attribute.' must contain the word "Laravel".'); } }, ], ]);</code>
  3. 유효성 검사기 확장 :

    • Validator 검사기 정면을 확장하여 응용 프로그램 전체에서 사용할 수있는 새로운 규칙을 추가 할 수 있습니다.

       <code class="php">use Illuminate\Support\Facades\Validator; Validator::extend('contains_word', function ($attribute, $value, $parameters, $validator) { $word = $parameters[0]; return stripos($value, $word) !== false; }); Validator::replacer('contains_word', function ($message, $attribute, $rule, $parameters) { return str_replace(':word', $parameters[0], $message); });</code>

      그런 다음 유효성 검사에서 사용자 정의 규칙을 사용할 수 있습니다.

       <code class="php">$request->validate([ 'title' => 'required|contains_word:Laravel', ]);</code>

Laravel에서 사용자 정의 검증 규칙 구현에 대한 예제 또는 자습서는 어디에서 찾을 수 있습니까?

Laravel에서 사용자 정의 검증 규칙 구현에 대한 예제와 자습서를 찾을 수있는 몇 가지 리소스가 있습니다.

  1. Laravel 공식 문서 :

    • Laravel 문서에는 사용자 정의 규칙 작성에 대한 세부 정보가 포함 된 유효성 검사 섹션이 있습니다. Laravel Docs의 "검증"섹션에서 찾을 수 있습니다.
  2. 라라 카스트 :

    • Laracasts는 유효성 검사 수업을 포함하여 Laravel의 수많은 비디오 자습서 및 코스를 제공합니다. 사용자 정의 검증 규칙과 관련된 특정 자습서를 검색 할 수 있습니다.
  3. 라벨 뉴스 :

    • Laravel News는 종종 유효성 검사를 포함한 다양한 Laravel 주제에 대한 기사와 튜토리얼을 게시합니다. 아카이브에서 관련 게시물을 검색 할 수 있습니다.
  4. Github :

    • 사용자 정의 검증 규칙을 구현하는 GitHub에서 오픈 소스 Laravel 프로젝트를 검색 할 수 있습니다. 이것은 이러한 규칙이 실제로 어떻게 사용되는지에 대한 실제 예를 제공 할 수 있습니다.
  5. 스택 오버플로 :

    • 이 Q & A 플랫폼에는 사용자 정의 규칙을 포함하여 Laravel 검증과 관련된 많은 질문과 답변이 있습니다. 특정 문제와 솔루션을 검색 할 수 있습니다.
  6. Laravel 커뮤니티 블로그 :

    • 많은 Laravel 개발자는 통찰력과 튜토리얼을 공유하는 개인 블로그를 유지합니다. 검색 엔진에서 "Laravel 사용자 정의 검증 규칙"을 검색하면 이러한 리소스로 이어질 수 있습니다.

이러한 리소스를 활용하면 Laravel에서 사용자 정의 검증 규칙을 효과적으로 구현하는 방법에 대한 더 깊은 이해를 얻을 수 있습니다.

위 내용은 Laravel에서 사용자 정의 검증 규칙을 어떻게 작성하고 사용하려면?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.