このページの2つのバージョン間の差分を表示します。
— | 11_php:02_framework:01_laravel:29_laravel_custom_validation [2019/04/24 01:51] (現在) – 作成 matsui | ||
---|---|---|---|
行 1: | 行 1: | ||
+ | ====== 29 Laravel Custom Validation ====== | ||
+ | Laravelでカスタムバリデーションを作成する方法 | ||
+ | |||
+ | ===== サービスプロバイダ作成 ===== | ||
+ | |||
+ | php artisan make: | ||
+ | |||
+ | < | ||
+ | namespace App\Providers; | ||
+ | |||
+ | use Illuminate\Support\ServiceProvider; | ||
+ | use Domain\CustomValidator; | ||
+ | |||
+ | class ValidatorServiceProvider extends ServiceProvider | ||
+ | { | ||
+ | /** | ||
+ | * Bootstrap the application services. | ||
+ | * | ||
+ | * @return void | ||
+ | */ | ||
+ | public function boot() | ||
+ | { | ||
+ | \Validator:: | ||
+ | return new CustomValidator($translator, | ||
+ | }); | ||
+ | } | ||
+ | |||
+ | /** | ||
+ | * Register the application services. | ||
+ | * | ||
+ | * @return void | ||
+ | */ | ||
+ | public function register() | ||
+ | { | ||
+ | // | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | |||
+ | ==== サービスプロバイダを設定ファイルに追加 ==== | ||
+ | < | ||
+ | ' | ||
+ | ... | ||
+ | |||
+ | App\Providers\ValidatorServiceProvider:: | ||
+ | |||
+ | ... | ||
+ | </ | ||
+ | |||
+ | ===== カスタムバリデーションのルール作成 ===== | ||
+ | |||
+ | <color # | ||
+ | |||
+ | < | ||
+ | <?php | ||
+ | namespace App; | ||
+ | |||
+ | class CustomValidator extends \Illuminate\Validation\Validator | ||
+ | { | ||
+ | /** | ||
+ | * なまえのバリデーション | ||
+ | * | ||
+ | * @param $attribute | ||
+ | * @param $value | ||
+ | * @param $parameters | ||
+ | * @return bool | ||
+ | */ | ||
+ | public function validateName($attribute, | ||
+ | { | ||
+ | if (preg_match('/ | ||
+ | return false; | ||
+ | } | ||
+ | return true; | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | ===== エラーメッセージ追加 ===== | ||
+ | |||
+ | < | ||
+ | resources/ | ||
+ | |||
+ | ' | ||
+ | ' | ||
+ | ... | ||
+ | |||
+ | ' | ||
+ | |||
+ | </ | ||
+ | |||
+ | ===== カスタムバリデーションを利用 ===== | ||
+ | |||
+ | < | ||
+ | $request-> | ||
+ | ' | ||
+ | ]); | ||
+ | |||
+ | </ | ||
+ | {{tag> |