我在控制器中的表单验证代码是
$this->form_validation->set_rules("name", "Name", "trim|callback_custom_validation");
if ($this->form_validation->run() !== FALSE) {}
我的助手代码是
function custom_validation($str) {
// validation logic
}
如果我把这个custom_validation
函数移到控制器,那么它可以工作,但不能作为助手。我需要从控制器和模型调用这个函数,所以我使用helper。那么如何从助手那里调用呢?
有两种方法可以做到这一点。
您应该在application/helpers文件夹中创建一个helper文件,并将函数放在helper文件中。然后在控制器中加载帮助程序文件。
custom_validation.php:
function custom_validation($str) {
// validation logic
}
内部控制器:
$this->load->helper('custom_validation');
还可以扩展Form_validation库。
创建文件:application/librarys/MY_Form_validation.php
<?php
class MY_Form_validation extends CI_Form_validation {
public function custom_validation($str) {
// validation logic
}
}
然后将其作为正常验证加载:
$this->form_validation->set_rules('name', 'Name', 'required|custom_validation');
将您的自定义验证方法添加到任何模型中,并在控制器和模型中使用,例如:
$this->form_validation->set_rules(
'name', 'Name',
array(
'trim',
'required',
array($this->Mymodel_m, 'custom_validation')
)
);
if ($this->form_validation->run() !== FALSE) {...}
更多信息可调用:按规则使用任何东西