LoginSignup
1
2

More than 5 years have passed since last update.

LaravelのFormRequestを使用したバリデーションに独自ルールを追加する

Last updated at Posted at 2019-02-14

例として、カタカナのみ受け付けるrulesを作成する場合

1.専用のサービスプロバイダを作成

command:php artisan make:provider KatakanaServiceProvider

これでApp/Providers配下に、新規にKatakanaServiceProviderが生成される

2.作成されたファイル内のbootメソッドにバリデーションエラーとなる条件式を記述する

public function boot()
     {
         Validator::extend('katakana', function ($value) { |
             return (preg_match('/^[ァ-ヶー]+$/u', $value) === 1);
         }); 
     } 

この場合、与えられた値がカタカナのみで構成されていない場合にエラーとしている

3.config/app.phpファイル内'providers'配列に記述を追加する

use Illuminate\Support\Facades\Validator;
~~
'providers' => [
~~
 App\Providers\KatakanaServiceProvider::class,
]

4.フォームリクエストのrulesメソッド内で、通常のルールと同様に使用できる

rules => [
  'UserNameFurigana' => 'required|katakana',
]
1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2