ユーザ用ツール

サイト用ツール


サイドバー



最近の更新



Tag Cloud

タグ数量
9
10
1
3
1
2
17
7
1
1
4
13
4
1
2
309
1
9
2
7
21
5
1
31
3
3
1
6
1
1
46
1
3
3
1
1
1
1
1
1
33
46
7
9
10
8
10
3
21
2
9
2
2
6
9
1
1
6
12
4
3
3
2
1
8
2
4
1
6
30
2
12
5
3
1
1
2
3
2
1
3
4
3
3
4
2
2
1
1
2
1
2
1
2
1
27
2
1
3
2
2
1
1
2
3
17
5
9
1
1
2
16
2
6
1
2
12
1
3
1
1
4
11
1
6
4
2
7
1
3
3
13
1
4
1
1
10
3
1
17
3
1
5
1
2
1
1
2
9
2
2
3
2
1
3
1
3
1
2
2
2
1
2
6
1
4
3
5
1
3
1
3
3
2
1
1
30
1
3
3
1
1
1
5
5
1
36
2
4
2
1
2
2
3
1
1
1
4
1
2
1
3
1
1
1
2
5
2
5
2
1
1
1
5
3
2
4
4
1
2
2
25
1
1
3
4
1
1
2
1
1
2
1
1
1
1
2
1
1
1
1
1
19
7
1
5
1
1
3
1
2
1
1
2
1
1
1
1
1
1
2
1
1
2
1
1
1
1
1
1
1
4
2
1
1
2
2
2
1
1
2
1
1
12
1
1
1
1
1
1
1
1
1
1
1
1
1
11_php:02_framework:01_laravel:29_laravel_custom_validation

29 Laravel Custom Validation

Laravelでカスタムバリデーションを作成する方法

サービスプロバイダ作成

php artisan make:provider ValidatorServiceProvider

app/Providers/ValidatorServiceProvider.php

namespace App\Providers;

use Illuminate\Support\ServiceProvider;
use Domain\CustomValidator;

class ValidatorServiceProvider extends ServiceProvider
{
    /**
     * Bootstrap the application services.
     *
     * @return void
     */
    public function boot()
    {
      \Validator::resolver(function ($translator, $data, $rules, $messages) {
          return new CustomValidator($translator, $data, $rules, $messages);
      });
    }

    /**
     * Register the application services.
     *
     * @return void
     */
    public function register()
    {
        //
    }
}

サービスプロバイダを設定ファイルに追加

config/app.php

'providers' => [
    ...

    App\Providers\ValidatorServiceProvider::class,

    ...

カスタムバリデーションのルール作成

※カスタムバリデーションのメソッド名は、必ずvalidateXXXXという名前にする

app/CustomValidator.php

<?php
namespace App;

class CustomValidator extends \Illuminate\Validation\Validator
{
    /**
    * なまえのバリデーション
    *
    * @param $attribute
    * @param $value
    * @param $parameters
    * @return bool
    */
    public function validateName($attribute, $value, $parameters)
    {
        if (preg_match('/[^a-Z]/u', $value) !== 0) {
          return false;
        }
        return true;
    }
}

エラーメッセージ追加

resources/lang/ja/validation.php

'name' => 'The :attribute no valid name',
'attributes' => [
       ...

        'family_name_name' => 'ふりがな(せい)',

カスタムバリデーションを利用

            $request->validate([
                'name' => 'required|Name',
            ]);

11_php/02_framework/01_laravel/29_laravel_custom_validation.txt · 最終更新: 2019/04/24 10:51 by matsui

Yesterday:860 Today:894 Total:237507