【FuelPHPの使い方】独自のバリデーションルールを追加する方法

始めに

このページは、PHPのフレームワーク「FuelPHP」の学習中の僕がメモとして残しているものです。内容に間違いがあればご連絡いただけると幸いです。

FuePHPには、あらかじめValidationクラスによく使うであろうバリデーションが用意されているので、それらを使えば1からコードを書く必要がありません。

しかし、実際に開発を始めると、デフォルトで用意されているバリデーションルールだけでは足りないこともあるでしょう。

その場合、Validationクラスの拡張を行うことで、独自のルールを追加することができます。

このページでは、その方法ついて解説します。

バリデーションルールの追加方法

  1. 「fuel/app/classes」に「myvalidation.php」を作成
  2.    myvalidation.phpにバリデーションチェックの処理を記述
  3. 「fuel/app/lang/ja/validation.php」にエラー時のメッセージを追加

1.「fuel/app/classes」に「myvalidation.php」を作成

名前は「myvalidation.php」でなくても「myrules.php」や他のファイル名でもOKなので、「fuel/app/classes」配下に作成します。

2. myvalidation.phpにバリデーションチェックの処理を記述

ファイルができたら、その中にバリデーションチェックの処理を記述します。

<?php

class MyValidation{

//////////////////////////////////////////////
// 半角英数字チェック
//////////////////////////////////////////////
public static function _validation_half_or_num($str){
  if(!preg_match("/^[a-zA-Z0-9]+$/", $str)){
    return false;
  }else {
    return true;
   }
  }
}
注意

メソッド名の前には「_validation_」というプレフィックスを記述する必要があります。例えば上の例ではメソッド名「half_or_num」の前に「_validation_」をつけています。

3. 「fuel/app/lang/ja/validation.php」にエラー時のメッセージを追加

「fuel/app/lang/ja/validation.php」にバリデーションチェックエラー時のメッセージが格納されているので、追加したバリデーションでエラーが起こった場合のメッセージを追記します。

以上で設定は完了です。

※バリデーションチェックのエラーメッセージを日本語化する方法は以下の記事で紹介しています。

【FuelPHPの使い方】バリデーションチェックのエラーメッセージを日本語化する方法



追加したバリデーションチェックの使い方

コントローラ側で追加したバリデーションルールを使うには、まずadd_callable()メソッドを使って作成したバリデーションのクラスを読み込みます。

$val = Validation::forge();
$val->add_callable('MyValidation'); //追加

そして、add_rule()を使って、使いたいメソッドを指定します。

$val->add('auth_key', '認証キー')
    ->add_rule('required')
    ->add_rule('exact_length', self::AUTH_KEY_LENGTH)
    ->add_rule('half_or_num');  // 追加

以上で、独自に作成したバリデーションチェックを使うことができます。

参考 Validation クラスFuelPHPドキュメント 【FuelPHPの使い方】テーブルをJOINしてデータを取得する方法
created by Rinker
¥4,750 (2022/12/06 06:33:35時点 Amazon調べ-詳細)

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA