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は、半角英数字で入力してください。', );
FuelphpのValidationクラスを拡張と、参考になります。
参考になってよかったです!
コメントありがとうございます!
ピンバック: [fuelPHP] 独自でvalidationルールを設定する | Gerolian
ピンバック: FuelPHPでバリデーションのルールを追加する | BUTTERFLY Waltz