アプリケーション全体で共通に使用できるcodeigniter 2.xでカスタム検証ルールを作成する方法はありますか?codeigniter 2.xでカスタムコールバック検証ルールを作成する
私たちは、その後のように検証ルールで使用することができ、コントローラ、コールバック関数を作成することができます知っている -
$this->form_validation->set_rules('user_dob', 'Date of Birth', 'required|callback_validDate|callback_validAge');
そして今、我々は、コントローラで検証関数を作成することができます -
public function validDate($date) {
$d = DateTime::createFromFormat('d-M-Y', $date);
if ($d && $d->format('d-M-Y') == $date)
return TRUE;
$this->form_validation->set_message('validDate', ' %s is not in correct date format');
return FALSE;
}
しかし、限界があります。このメソッドは、その特定のコントローラー内でのみ使用できます。この機能は他のコントローラには使用できません。同じコードをもう一度書く必要があります。
これについては、与えられた検証関数でヘルパーファイルを作成しようとしましたが、もう一度運がありません。
私はどのようにして何度も検証関数を使うことができますか?codeigniterの共通ファイルで一度作成されましたか?
[traits](http://php.net/manual/en/language.oop5.traits.php) –
また、継承を試みることもできます'CI_Form_validation'を実行して検証メソッドを実装することで、ルールとして使用できます。あるいは、[呼び出し可能なルール](http://www.codeigniter.com/userguide3/libraries/form_validation.html#callable-use-anything-as-a-rule)をサポートするCodeIgniter 3から 'CI_Form_validation'をインポートしようとすることができます。 –
あなたの独自のルールで検証libを拡張するための手がかりを与えることができる件名があります:http://stackoverflow.com/questions/9160610/extending-form-validation-in-codeigniter – cssBlaster21895