このページは、PHPのフレームワーク「FuelPHP」の学習中の僕がメモとして残しているものです。内容に間違いがあればご連絡いただけると幸いです。
FuePHPには、あらかじめValidationクラスによく使うであろうバリデーションが用意されているので、それらを使えば1からコードを書く必要がありません。
しかし、実際に開発を始めると、デフォルトで用意されているバリデーションルールだけでは足りないこともあるでしょう。
その場合、Validationクラスの拡張を行うことで、独自のルールを追加することができます。
このページでは、その方法ついて解説します。
目次
バリデーションルールの追加方法
- 「fuel/app/classes」に「myvalidation.php」を作成
- myvalidation.phpにバリデーションチェックの処理を記述
- 「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してデータを取得する方法
(2024/11/21 16:45:51時点 Amazon調べ-詳細)