簡體   English   中英

codeigniter回調不起作用?

[英]codeigniter callback doesn't work?

這是codeigniter中的簡單登錄驗證腳本。 我不明白這個問題。 我已經看過用戶指南,但是回調不起作用。

public function form_validation()
{
    $this->load->library('form_validation');
    $this->form_validation->set_rules('username', 'Username', 'required|trim        |alpha_numeric');
    $this->form_validation->set_rules('password', 'Password', `enter code here` 'required|trim |xss_clean');
    $this->form_validation->set_rules('email', 'Email', 'required|trim|valid_email|xss_clean|callback_validate');
    if ($this->form_validation->run()) {
        echo "validated but not logged";
    } else {
        $this->load->view('errors/formerror');

    }
}

public function validate()
{
    $this->load->model('model_users');
    if ($this->model_users->can_login()) {
        echo "Logged";
    } else {
        $this->form_validation->set_message('validate', "Incorrect username/password");
    }

}
public function form_validation()
{
    $this->load->library('form_validation');
    $this->form_validation->set_rules('username', 'Username', 'required|trim|alpha_numeric');
    $this->form_validation->set_rules('password', 'Password', 'required|trim |xss_clean');
    $this->form_validation->set_rules('email', 'Email', 'required|trim|valid_email|xss_clean|callback_email_check');
    if ($this->form_validation->run()) {
        echo "validated but not logged";
    } else {
        $this->load->view('errors/formerror');
    }
}

public function email_check($email)
{
    $this->load->model('model_users');
    if ($this->model_users->can_login($email)) {
        echo "Logged";
        return true;
    } else {
        $this->form_validation->set_message('email_check', "Incorrect username/password");
        return false;
    }
}

添加_check后綴,例如callback_email_check和回調方法email_check並進行檢查。 在此處找到更多信息CodeIgniter回調

我陷入了這樣的混亂,幾乎淹死了整整一天。 這是問題所在。 我正在使用模型,事實證明在模型中回調所需的功能不起作用。 要解決此問題:

確保用於回調的函數在控制器中,而不在模型中。

它像魔術一樣工作。 我不知道為什么,但它修復了我的回調情況。

添加檢查后綴並沒有太大區別,因為該手冊對后綴沒有特別說明。 前綴回調是我所知道的永遠不應該遺漏的內容。 我有幾個沒有_check后綴的回調。

手冊內容如下:

要調用回調,只需將函數名稱放入規則中,並以“ callback_”作為規則前綴。 如果您需要在回調函數中接收一個額外的參數,通常只需在方括號之間的函數名稱后添加它,例如:“ callback_foo [bar]”,則它將作為回調函數的第二個參數傳遞

我注意到的是手冊中的示例在控制器而不是模型中具有回調函數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM