4
如何在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'並實現您的驗證方法,因此可以將它們用作規則。或者,您可以嘗試從支持[可調用規則]的CodeIgniter 3中導入'CI_Form_validation'(http://www.codeigniter.com/userguide3/libraries/form_validation.html#callable-use-anything-as-a-rule) –
有一個主題,它可以給你一個關於擴展驗證lib與你自己的規則的線索:http://stackoverflow.com/questions/9160610/extending-form-validation-in-codeigniter – cssBlaster21895