Fuelphpで用意されているバリデーションのルール以外に
自分で作成したバリデーションを追加したい場合があります。
コアクラスを拡張することによって、新しいバリデーションのルールを作成することができます。
今回はFuelphpのValidationクラスを拡張し、バリデーションのルールを追加する方法をメモします。
■ バリデーションのルールを追加する方法
「fuel/app/classes」に「myvalidation.php」を作成します。
作成した「myvalidation.php」に追加したいバリデーションのルールを記述します。
下記は半角英数字チェックを追加した場合です。
追加する時は「_validation_」プレフィックスを付けて作成します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | <?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()」に作成したバリデーションを記述します。
1 2 3 4 5 6 7 | $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」に新しいエラーメッセージを追加します。
1 2 3 | return array ( 'alphanum' => ':labelは、半角英数字で入力してください。' , ); |