我在配置文件中为不同的页面设置了各种验证规则。在一个页面中,我想检查用户名是否存在。是否可以在配置文件中创建验证规则?但我创建了检查模型的功能。我想知道是否无法在配置文件中调用该模型中的回调函数?
我已阅读http://codeigniter.com/wiki/MY_Validation_-_Callbacks_into_Models/中的文章。 在那篇文章中,它指出我们必须调用验证规则,如:
$this->form_validation->run($this);
通过在配置文件中设置验证规则,我们必须调用函数:
$this->form_validation->run('name of rule in config file');
我如何加入这两个?
答案 0 :(得分:1)
通过回调设置验证规则只需使用字符串即可完成。从那个链接:
$this->validation->set_rules(array(
'username' => 'trim|required|callback_users_model->is_unique[username]',
'password' => 'trim|required|matches[confirm]',
));
你可以看到回调方法是使用字符串
设置的 callback_users_model->is_unique[username]
你只需要使用字符串
$rule = 'callback_' . $model_class . '->' $function_name . '[username]';
现在您可以像往常一样从配置中加载$ model_class和$ function_name:
$model_class = $this->config->item('validation.model.class');
$function_name = $this->config->item('validation.method');