dari88's diary

これから趣味にするプログラミング/PHP/javascript/kohana/CMS/web design/

kohanaのテスト12-7・・・エラーメッセージを改善する

 ユーザー登録ページのエラーメッセージが気に入らないので改善しました。'not_empty' チェックの第二引数を指定してやるとエラーメッセージを自在に表現できるようです。

 

コントローラの修正

・kohana/application/classes/controller/test12/register.php の修正部分
 メールアドレスを空で登録するとルールチェックがパスしてしまうので、not_empty のチェックを追加しています。

        if (isset($_POST['user_login'])) {
            $post = Validation::factory($_POST)
                    ->rule('user_login', 'not_empty', array(':value', 'ユーザー名'))
                    ->rule('user_login', 'max_length', array(':value', 24))
                    ->rule('user_login', 'regex', array(':value', '/^[a-z0-9_.]++$/iD'))
                    ->rule('user_login', array($user, 'unique_username'))
                    ->rule('user_email', 'not_empty', array(':value', 'メールアドレス'))
                    ->rule('user_email', 'max_length', array(':value', 60))
                    ->rule('user_email', 'email')
                    ->rule('user_email', 'email_domain')
                    ->rule('user_email', array($user, 'unique_email'));
$errors = $post->errors('test12');

 

メッセージファイル

・kohana/application/messages/test12.php

<?php defined('SYSPATH') or die('No direct script access.');

return array(
        'email'         => 'メールアドレスの形式が不適切です',
        'email_domain'  => 'メールアドレスのドメイン名が不適切です',
        'matches'       => '確認入力が間違っています',
        'min_length'    => ':field は :param2 文字以上にして下さい',
        'max_length'    => ':field は :param2 文字以下にして下さい',
        'not_empty'     => ':param2 を書いて下さい',
        'regex'         => ':field が規定の形式になっていません',
        'url'           => 'URLの形式が不適切です',
    'unique_username' => 'そのユーザー名は既に使われています',
    'unique_email' => 'そのメールアドレスは既に使われています',
);