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