2017-07-10 1 views
0

Ich habe Probleme mit meinen College-Aufgaben. Ich lerne eine Update-Funktion Trog codeigniter zu machen, dann habe ich einen Fehler:Codeigniter - fehlendes Argument 1

Argument Fehlt 1 für Konto :: update()

Wenn ich auf „Senden“ drücken.

Controller:

class Account extends CI_Controller { 

public function __construct() { 
    parent::__construct(); 

    $this->load->model('cpanel/account/account_model'); 
} 

public function update($nim) { 
    $this->form_validation->set_rules('nim', 'nim', 'required'); 
    $this->form_validation->set_rules('nama', 'nama', 'required'); 
    $this->form_validation->set_rules('sandi', 'sandi', 'required'); 
    $this->form_validation->set_rules('email', 'email', 'required'); 
    $this->form_validation->set_rules('telp', 'telp', 'required'); 

    if ($this->form_validation->run() === FALSE) { 
     $data['akun'] = $this->account_model->detail(); 
     $data['detail'] = $this->account_model->detail($nim); 
     $data = array('title'=> 'Mengubah Data Akun : '.$data['detail']['ortu_nama'], 'akun'=> $this->account_model->detail(), 'detail'=> $this->account_model->detail($nim), 'isi'=>'cpanel/account/account_edit_view'); 

     $this->load->view('cpanel/layout/wrapper',$data); 
    } else { 
     $data = array(
      'ortu_nim_mhs' => $this->input->post('nim'), 
      'ortu_nama' => $this->input->post('nama'), 
      'ortu_email' => $this->input->post('email'), 
      'ortu_telp' => $this->input->post('telp') 
      ); 

     $this->account_model->update($data); 
     $konten = array('title'=>'Perubahan Data Sukses', 'isi'=>'cpanel/account/success_view'); 
     $this->load->view('cpanel/layout/wrapper', $konten); 
    } 
}} 

Modell:

class Account_model extends CI_Model { 

public function __construct() { 
    $this->load->database(); 
} 

public function update($data) { 
    $this->db->where('ortu_nim_mhs', $data['ortu_nim_mhs']); 
    return $this->db->update('user_ortu', $data); 
} 

public function detail($nim = FALSE) { 
    if ($nim === FALSE) { 
     $query = $this->db->get('user_ortu'); 
     return $query->result_array(); 
    } 
    $query = $this->db->get_where('user_ortu', array('ortu_nim_mhs'=>$nim)); 
    return $query->row_array(); 
}} 
+0

hi, in Ihrer Methode ** update ** was ist die Variable ** $ nim ** ändern 'öffentliche Funktion update ($ nim) {' auf 'öffentliche Funktion update() {' – elddenmedio

+0

Fehlendes Argument 1 bedeutet normalerweise, dass Es fehlt, wenn Sie die Update-Funktion aufgerufen haben. Finden Sie heraus, wo Sie updaten von und überprüfen Sie, welchen Parameter Sie übergeben, und wenn es wie Cognistinter beabsichtigt, es zu übergeben. Normalerweise werden Formularparameter von POST – Ice76

+0

übergeben. Haben Sie meine Antwort versucht? – user4419336

Antwort

0

Versuchen $data = array(); in Modellfunktion

public function update($data = array()) { 
    $this->db->where('ortu_nim_mhs', $data['ortu_nim_mhs']); 
    return $this->db->update('user_ortu', $data); 
} 
0

In Ihrem obigen Code, wenn Sie Formular mit POST Methode einreichen werden als Funktionsargument ist nicht benötigt. Bitte überprüfen Sie unten.

public function update() { 
    // Your code 
} 

Aber für den Fall, wenn Sie Formular mit get Methode einreichen als Sie zum ersten Mal Daten für die Validierung festlegen müssen, wie unten angegeben.

public function update() { 
    $this->form_validation->set_data($this->input->get()); 
    $this->form_validation->set_rules('nim', 'nim', 'required'); 
    $this->form_validation->set_rules('nama', 'nama', 'required'); 
    $this->form_validation->set_rules('sandi', 'sandi', 'required'); 
    $this->form_validation->set_rules('email', 'email', 'required'); 
    $this->form_validation->set_rules('telp', 'telp', 'required'); 

    // Your other code 
} 

Dies wird Ihnen helfen. Lass es mich wissen, wenn es nicht funktioniert.

Verwandte Themen