2014-12-04 2 views
4

Я делаю приложение в CodeIgniter, я не знаю, как сравнить электронную почту с db в CodeIgniter, пожалуйста, кто-нибудь мне поможет.Как проверить почту уже существует в db с 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'); 
} 
} 

Как электронная почта alreay погоду существует или нет.

+0

где вы пройти по электронной почте? –

+0

Проверьте правило проверки 'is_unique' –

+0

Большое спасибо за ваши ответы. Я получил ответ. – Vijaykarthik

ответ

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', вам не нужно делать свой собственный –

+0

, и вам нужно вернуть' true/false' из функции обратного вызова. и определить «сообщение об ошибке для вашего пользовательского обратного вызова» .... 'is_unique' - лучший подход, хотя, как упоминалось @DamienPirsy. –

6

Предположим, у вас есть user таблицы ап d email колонка. Таким образом, вы должны добавить эту строку в форме проверки

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

Примечание И нужен уникальный индекс в вашей email колонке

проверка Documentation