CustomValidator
拡張フォルダの作成
%cd laravel/project/path
%cd app
%mkdir extensions
%cd extensions
composerのautoload追加
%cd laravel/project/path
%vi composer.json
composer.json
"autoload": {
"classmap": [
"app/commands",
"app/controllers",
"app/models",
"app/database/migrations",
"app/database/seeds",
"app/tests/TestCase.php",
"app/extensions" //<-追加
]
dump-autoloadを実行
%composer dump-autoload
CustomValidatorを作成
%vi CustomValidator.php
CustomValidator.php
<?php
class CustomValidator extends Illuminate\Validation\Validator {
/*
* 半角英字&空白
*/
protected function validateAlphaSpace($attribute, $value)
{
return preg_match('/^[\pL\s]+$/',$value);
}
/*
* 半角英字バリデーション オーバーライド
* uオプション(unicode)を外す。
*/
protected function validateAlpha($attribute, $value)
{
return preg_match('/^\pL+$/', $value);
}
}
カスタムバリデーターリゾルバーを登録する
%cd laravel/project/path
%cd app/start
%vi global.php
global.php
/*
* カスタムバリデーターリゾルバー登録
*/
Validator::resolver(function($translator, $data, $rules, $messages)
{
return new CustomValidator($translator, $data, $rules, $messages);
});
を追加
エラーメッセージを追加
%cd laravel/project/path
%cd app/lang/en
%vi validation.php
% diff validation.php validation.php.20140618
21d20
< "alpha_space" => ":attributeにはアルファベット、空白以外使用できません。",
参考
http://laravel4.kore1server.com/docs/validation
http://qiita.com/ytake/items/f45c9a6e17daa12828f2
http://io.laravel.jp/forum/06-13-2014-alpha