在配置文件中的模型中设置回调函数

时间:2011-04-04 04:30:22

标签: php validation codeigniter

我在配置文件中为不同的页面设置了各种验证规则。在一个页面中,我想检查用户名是否存在。是否可以在配置文件中创建验证规则?但我创建了检查模型的功能。我想知道是否无法在配置文件中调用该模型中的回调函数?

我已阅读http://codeigniter.com/wiki/MY_Validation_-_Callbacks_into_Models/中的文章。 在那篇文章中,它指出我们必须调用验证规则,如:

$this->form_validation->run($this);

通过在配置文件中设置验证规则,我们必须调用函数:

$this->form_validation->run('name of rule in config file');

我如何加入这两个?

1 个答案:

答案 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');