LoginSignup
12
12

More than 5 years have passed since last update.

laravel4 CustomValidator

Last updated at Posted at 2014-06-18

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

12
12
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
12