Php CodeIgniter向回调传递第二个参数

Php CodeIgniter向回调传递第二个参数,php,codeigniter,Php,Codeigniter,在我的数据库中,根据用户注册的帐户类型,我有多种类型的用户。我创建了一个验证规则,用于检查某人注册的用户名或电子邮件是否在数据库中,但是我需要能够检查数据库中的正确表 function create_account($account_type){ $this->load->library('form_validation'); $this->form_validation->set_rules('f_name','First Name','trim|re

在我的数据库中,根据用户注册的帐户类型,我有多种类型的用户。我创建了一个验证规则,用于检查某人注册的用户名或电子邮件是否在数据库中,但是我需要能够检查数据库中的正确表

function create_account($account_type){
    $this->load->library('form_validation');

    $this->form_validation->set_rules('f_name','First Name','trim|required');
    $this->form_validation->set_rules('l_name','Last Name','trim|required');
    $this->form_validation->set_rules('u_name','Username','trim|required|min_length[6]|max_length[30]|callback_check_if_username_exists');
    $this->form_validation->set_rules('email','Email','trim|required|valid_email|callback_check_if_email_exists');
}
我的支票用户名回调包含两个参数,用户名和帐户类型。联机帮助仅讨论传递即时值或其他post值。如何将帐户类型传递到回调中

function check_if_username_exists($name,$account_type){
    $this->load->model('membership_model');

    $username_available = $this->membership_model->check_if_username_exists($name,$account_type);

    if($username_available){
        return true;
    }
    else {
        return false;
    }
}
从用户指南:

要调用回调,只需将方法名放入一个规则中,并将“callback\”作为规则前缀。如果您需要在回调方法中接收一个额外的参数,只需在方括号中的方法名称之后添加它,如:“callback_foo**[bar]**”,然后它将作为回调方法的第二个参数传递

所以,你要这样做

    $this->form_validation->set_rules('u_name','Username','trim|required|min_length[6]|max_length[30]|callback_check_if_username_exists[' . $account_type . ']');

你可以直接通过

function check_if_username_exists(){

    $email = $this->input->post('email');// like this way
    $account_type = $this->input->post('account_type');// like this way
    $this->load->model('membership_model');

    $username_available = $this->membership_model->check_if_username_exists($name,$account_type);

    if($username_available){
        return true;
    }
    else {
        return false;
    }
}
也可用于检查您可以使用的电子邮件的唯一条目

   is_unique[table.field]

CodSignator的验证

如果我的问题有点不清楚,很抱歉。我知道如何将'u_name'作为参数传递。我想知道如何将“account\u type”作为参数传递。我的错误是,它仍然是一样的。修改了我的答案。我最初没有公布账户类型,但现在意识到这可能是最好的(也可能是唯一的)办法。这就是我困惑的地方。不过谢谢你:)啊-好的。在create\u account函数中有$account\u type作为参数。从哪里
$account\u type
来的??