[: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'
[:]