2013-11-09 2 views
0

Я работаю в CodeIgniter я применил уникальный ключ для адреса электронной почты .so когда я вписываю дублирующий адрес электронной почты отображается номер ошибки: 1062Предупреждения о дубликате записи

Дублировать запись «[email protected]» для key 'email_address' Итак, я хочу, чтобы это отображалось в виде предупреждений, помогите мне решить проблему.

function create_member() 
    { 

     $new_member_insert_data = array(
      'first_name' => $this->input->post('first_name'), 
      'last_name' => $this->input->post('last_name'), 
      'email_address' => $this->input->post('email_address'),   
      'username' => $this->input->post('username'), 
      'password' => md5($this->input->post('password'))      
     ); 

     $insert = $this->db->insert('membership', $new_member_insert_data); 
     if ($this->db->_error_number() == 1062) 
       { 
       echo "Duplicate value"; 
       } 
     return $insert; 
    } 
+0

и как этот вызов 'create_member' вызывается? –

+0

Он называется от контроллера – user2969888

+0

Это ajax. Я имею в виду действие в контроллере? –

ответ

0

Вы можете использовать flashdata из session класса.

вы можете установить:

if ($this->db->_error_number() == 1062) 
{ 
$this->session->set_flashdata('duplicate_email', 'Duplicate value'); 
redirect('your_previous_page'); 
} 

и на странице "View" получить значение duplicate_email и показать сообщение об ошибке:

$err = $this->session->flashdata('duplicate_email'); 

echo $err; 

Documentation

1

Попробуйте это:

// Controller "membership" 

function register() { 

    if($this->input->post()){ 

     $this->form_validation->set_rules('email_address', 'Email', 'trim|required|xss_clean|is_unique[membership.email_address]'); 

     if ($this->form_validation->run() == TRUE){ 

      $this->load->model('membership_model'); 
      $this->membership_model->create_member(); 

     } 

    } 

} 


// Model "membership_model" 

function create_member() { 

     $new_member_insert_data = array(
      'first_name' => $this->input->post('first_name'), 
      'last_name' => $this->input->post('last_name'), 
      'email_address' => $this->input->post('email_address'),   
      'username' => $this->input->post('username'), 
      'password' => md5($this->input->post('password'))      
     ); 

     if ($this->db->insert('membership', $new_member_insert_data)) { 
      return TRUE; 
     } 

} 
Смежные вопросы