2017-07-10 16 views
0

私は大学の課題に問題があります。私はボタンを「送信」を押すとCodeigniter - 引数がありません1

アカウントの引数1がありません::更新()

:私は更新機能トラフのCodeIgniterを作ることを学んだ、私はエラーを得ました。

コントローラー:

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); 
    } 
}} 

モデル:

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

こんにちは、あなたのメソッド**アップデート**何が** ** nim ** **パブリック関数の更新($ nim){'を' public function update(){'に変更する – elddenmedio

+0

引数1がないことは、更新機能を呼び出すと、それが欠落しています。どこから更新を呼び出すかを調べ、渡されるパラメータと、Codeigniterがそれを渡す方法を調べます。通常、フォームパラメータはPOSTによって渡されます – Ice76

+0

あなたは私の答えを試しましたか? – user4419336

答えて

0

あなたはPOSTメソッドでフォームを提出している場合、関数の引数があるよりも、あなたの上記のコードで

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

モデル関数で$data = array();をお試しください必須ではありません。下記をご確認ください。

public function update() { 
    // Your code 
} 

しかし、あなたは下記のように、最初の検証のためのデータを設定する必要があるよりも、あなたがgetメソッドでフォームを送信した場合場合

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 
} 

これが役に立ちます。それが動作しない場合私に教えてください。

関連する問題