2016-12-30 3 views
1

Arbeitender Benutzer verwalten Seite mit Codeigniter, habe ich bearbeiten Benutzerfunktion mein Selbst und das funktioniert, aber Benachrichtigung kann nicht funktionieren. Mean Wenn ein Problem bei der Aktualisierung von Benutzerdetails auftritt, die durch Fehler oder Erfolg ersetzt werden sollen, aber nichts passiert, aber die Daten werden aktualisiert.Codeigniter - Benutzer als Admin bearbeiten

Hier ist das Modell (Admin_model.php):

public function editUser($id, $data) 
{ 

    $this->db->where('id', $id); 
    $this->db->update('users', $data); 
} 

Controller (admin.php):

public function edit_user($id) 
{ 

    //set validation rules 
    $this->form_validation->set_rules('firstname', 'First Name', 'trim|required'); 
    $this->form_validation->set_rules('lastname', 'Last Name', 'trim|required'); 
    $this->form_validation->set_rules('email', 'Email', 'trim|required|valid_email'); 

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

     $this->load->view('default/admin/edit_user'); 

    } else { 

     $data = array(
      'firstname' => $this->input->post('firstname'), 
      'lastname' => $this->input->post('lastname'), 
      'email'  => $this->input->post('email'), 
      'updated_at' => date('Y-m-j H:i:s') 
     ); 

     if($this->Admin_model->editUser($id,$data)) { 
      $this->session->set_flashdata('global_alert','<div class="alert alert-success text-center">User updated!</div>'); 
      redirect('admin/users'); 
     } else { 
      $this->load->view('default/admin/edit_user'); 

      $this->session->set_flashdata('global_alert','<div class="alert alert-danger text-center">Something wrong!</div>'); 
     } 

    } 

} 
+0

Wie zeigen Sie die Flash-Nachricht in Ihrer View-Datei? –

+0

Ja, ich benutze Flash-Nachrichtenansicht Dateikopf. –

+0

Flash-Daten werden gespeichert und für den nächsten Sitzungsaufruf verwendet. Ihre Fehlermeldung in Flash-Daten ist daher für Ihre Ansicht nicht verfügbar. Wenn Sie die Seite aktualisieren, wird es angezeigt. Ihre Erfolgsmeldung ist in Ordnung, wenn Sie die Flash-Daten einstellen und dann umleiten, was korrekt ist. Wenn Sie nicht umleiten, legen Sie Ihre Fehlermeldung als normale Variable fest, die an Ihre Ansicht gesendet werden soll. – PaulD

Antwort

3

$ this-> Admin_model-> editUser nichts zurückkehr. versuchen

public function editUser($id, $data) 
{ 

    $this->db->where('id', $id); 
    $result = $this->db->update('users', $data); 
    if ($result === FALSE) 
    { 
     show_error('error !'); 
    } 
    return $result; 
} 
+0

Es funktioniert, aber wie überprüft man, ob fehlschlägt? –

+0

wird wahrscheinlich nicht fehlschlagen. aber Sie könnten einen Fehler in editUser auslösen, wenn $ this-> db-> update === FALSE und dann den Wert zurückgibt. – pgee70

+0

Danke, es hilft –

Verwandte Themen