[FuelPHP]独自のバリデーションルールを作る

Posted 2012年2月10日 | Auther dada | Category PC・デジタル | Tag タグ: ,
Twitterにツイートする Facebookでシェアする はてなブックマーク

前回の日記「[FuelPHP]フォームのバリデーションとカスタムメッセージ」の続きで
自分ルールのバリデーションを作るメモです。

fuel/app/classes/myvalidation.php に記述します。

名前:no_same_chara
ルール:
「chara1」「chara2」「chara3」3つのフィールドに重複があれば false。
ただし内容が「chara_none」なら除外する。

<?php
class MyValidation
{
  public static function _validation_no_same_chara($val)
  {
    $chara1 = Input::post('chara1');
    $chara2 = Input::post('chara2');
    $chara3 = Input::post('chara3');

    if( $chara1 == $chara2 && $chara1 != 'chara_none' ) return false;
    if( $chara1 == $chara3 && $chara1 != 'chara_none' ) return false;
    if( $chara2 == $chara3 && $chara2 != 'chara_none' ) return false;

    return true;
  }
}

いきなり引数 $valを無視してますw
普通に項目の内容を検証するには下記のようにします。

public static function _validation_test_validation( $val )
{
  return $val == "ABC" ? true : false;
}

オプションを与えることもできます。
オプションの必要なルールだと「max_length」が良い例ですね。
下記ではエラーメッセージも同時に設定しています。

public static function _validation_test_validation( $val, $option )
{
  Validation::active()->set_message('test_validation', ':label は「'.$option.'」じゃない。');
  return $val == $option ? true : false;
}

前回の記事でメッセージのカスタマイズについて書いたように
fuel/app/lang/ja/validation.php
に記述してもかまいません。

関連する記事

No Comments »

No comments yet.

Leave a comment

カテゴリー