[:ja]
Laravelでカスタムバリデーションの登録方法。
以下のように設定してしまったほうがだいぶ楽な感じ
1 /app/Services/CustomValidator.php クラスを作成
<?php
namespace AppServices;
class CustomValidator extends IlluminateValidationValidator
{
public function validateAlphaNumeric($attribute,$value,$parameters){
return (preg_match("/^[a-z0-9]+$/i", $value));
}
public function validateAlphabet($attribute,$value,$parameters){
return (preg_match("/^[a-zs]+$/i", $value));
}
}
2 app/Providers/ValidatorServiceProvider.php クラスを作成
<?php
namespace AppProviders;
use AppServicesCustomValidator;
use IlluminateSupportServiceProvider;
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()
{
//
}
}
3 /config/app.php の ‘providers’ に追記
'providers' => [
.
.
.
AppProvidersValidatorServiceProvider::class,
],
4 使う
関数名がキャメルケースでValidationではスネークケース。
public function validateAlphaNumeric($attribute,$value,$parameters){
return (preg_match("/^[a-z0-9]+$/i", $value));
}
という関数なら、以下のようにスネークケースで指定できる。
'name' => 'required|alpha_numeric'
[:en]
Laravelでカスタムバリデーションの登録方法。
以下のように設定してしまったほうがだいぶ楽な感じ
1 /app/Services/CustomValidator.php クラスを作成
<?php namespace App\Services; use Illuminate\Validation\Validator; class CustomValidator extends Validator { // public function validateAlphaNumeric($attribute,$value,$parameters){ // return (preg_match("/^[a-z0-9]+$/i", $value)); // } // // public function validateAlphabet($attribute,$value,$parameters){ // return (preg_match("/^[a-zs]+$/i", $value)); // } public function validateRegulationCuts($attribute,$value,$parameters){ dd($value); } }
2 app/Providers/ValidatorServiceProvider.php クラスを作成
<?php namespace App\Providers; use App\Services\CustomValidator; use Illuminate\Support\Facades\Validator; use Illuminate\Support\ServiceProvider; 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() { // } }
3 /config/app.php の ‘providers’ に追記
'providers' => [
.
.
.
App\Providers\Validator\ServiceProvider::class,
],
4 使う
関数名がキャメルケースでValidationではスネークケース。
public function validateAlphaNumeric($attribute,$value,$parameters){
return (preg_match("/^[a-z0-9]+$/i", $value));
}
という関数なら、以下のようにスネークケースで指定できる。
'name' => 'required|alpha_numeric'
[:]
コメントを残す