【问题标题】:setting callback function within a model in config file在配置文件中的模型内设置回调函数
【发布时间】:2011-04-04 04:30:21
【问题描述】:

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

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

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

通过在配置文件中设置验证规则,我们将不得不像这样调用函数:

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

我如何加入这两个?

【问题讨论】:

    标签: php validation codeigniter


    【解决方案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');
    

    【讨论】:

    • 我编辑了 form_validation 库以满足我的需要。现在它的工作
    猜你喜欢
    • 2015-12-26
    • 1970-01-01
    • 2011-10-05
    • 2013-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多