Fuelphpで用意されているバリデーションのルール以外に
自分で作成したバリデーションを追加したい場合があります。
コアクラスを拡張することによって、新しいバリデーションのルールを作成することができます。
今回はFuelphpのValidationクラスを拡張し、バリデーションのルールを追加する方法をメモします。
■ バリデーションのルールを追加する方法
「fuel/app/classes」に「myvalidation.php」を作成します。
作成した「myvalidation.php」に追加したいバリデーションのルールを記述します。
下記は半角英数字チェックを追加した場合です。
追加する時は「_validation_」プレフィックスを付けて作成します。
<?php class MyValidation { // 半角英数字チェック public static function _validation_alphanum($data) { if(!empty($data)) { if (preg_match("/^[a-zA-Z0-9]+$/", $data)) { return true; } else { return false; } } return true; } }
作成したバリデーションを使用する場合は下記のように記述します。
「add_callable()」で作成したバリデーションのクラスを読び出します。
後は「add_rule()」に作成したバリデーションを記述します。
$validation = \Validation::forge(); $validation->add_callable('myvalidation'); $validation->add('id', 'ID') ->add_rule('required') ->add_rule('alphanum'); $validation->run();
エラーメッセージを設定する場合は「fuel/app/lang/ja/validation.php」に新しいエラーメッセージを追加します。
return array( 'alphanum' => ':labelは、半角英数字で入力してください。', );