2014-12-04 80 views
4

我在CodeIgniter中做應用程序,我不知道如何比較電子郵件與CodeIgniter中的分貝,請任何人幫助我。如何檢查電子郵件中已存在與CodeIgniter分貝

控制器

public function signup() 
{ 
    $this->load->view('signup'); 

} 
public function savedata(){ 

$this->load->library('form_validation');   
$this->form_validation->set_rules('firstname', 'firstname', 'required'); 
$this->form_validation->set_rules('lastname', 'lastname', 'required'); 


if ($this->form_validation->run() == TRUE) // Only add new option if it is unique 
{  
    $result = $this->account_model->insert(); 
    if($result > 0) 
    { 
    $data['message'] = "Added successfully";  

    $this->load->view('signup',$data); 
    } 
    else 
    { 
    $this->index(); 
    } 
} 
else 
{ 
    $this->load->view('signup'); 
} 
} 

如何電子郵件wheather電子郵件alreay存在與否。

+0

,你在哪裏通過電子郵件加入表單驗證

$this->form_validation->set_rules('email','Email','required|valid_email|is_unique[users.email]'); 

注意 這一行,需要一個唯一索引? – 2014-12-04 13:04:06

+0

檢查'is_unique'驗證規則 – 2014-12-04 13:08:08

+0

非常感謝您的回覆。我得到了答案。 – Vijaykarthik 2014-12-06 05:30:53

回答

3

添加一條規則:

$this->form_validation->set_rules('email', 'Email', 'callback_rolekey_exists'); 

在同一個控制器:

function rolekey_exists($key) { 
    $this->roles_model->mail_exists($key); 
} 

在模型中,

function mail_exists($key) 
{ 
    $this->db->where('email',$key); 
    $query = $this->db->get('users'); 
    if ($query->num_rows() > 0){ 
     return true; 
    } 
    else{ 
     return false; 
    } 
} 

Reference

+1

已經有'is_unique'規則,不需要自己製作 – 2014-12-04 13:07:24

+0

,而且你需要從回調函數返回true/false。併爲你的自定義回調函數定義'錯誤消息....不過,@DamienPirsy提到''is_unique'是最好的方法。 – 2014-12-04 13:27:15

6

假設你user表中d email欄。所以,你必須在你的email

檢查Documentation