大きく分けると次の2つの方法があります
● 1. サービスプロバイダーを使用する方法 (おすすめです)
● 2. バリデーションルールを使用する方法
php artisan make:provider ValidatorServiceProvider
app/Providers/ValidatorServiceProvider.php が自動生成されます
public function boot()
{
\Validator::extend(
'mytext',
function ($attribute, $value, $parameters, $validator) {
return preg_match('/^[0-9]{3}-?[0-9]{4}$/', $value);
}
);
}
config/app.php
/*
* Application Service Providers...
*/
App\Providers\ValidatorServiceProvider::class,
これだけでOKです!
php artisan make:rule Hankaku
app/Rules/Hankaku.php が自動作成されます
バリデーションがOKの時に true を返すように記述します
public function passes($attribute, $value)
{
return preg_match('/^[a-zA-Z0-9]+$/', $value);
}
public function message()
{
return ':attribute は半角英数字で入力してください';
}
formRequest.php
public function rules(): array
{
return [
'zipcode' => ['required', new Hankaku],
];
}
配列で記述します。パイプ記法では使用できないみたい?