データベース内の情報を削除するためにURIセグメントを使用しています:
anchor('site/delete_note/'.$row->id, 'Delete')
モデル:
function delete_note()
{
$this->db->where('id', $this->uri->segment(3));
$this->db->delete('note');
}
正常に動作しますが、情報を更新するために同じことをしたいのですが、動作させることができません。これはビュー内のリンクです。
anchor('site/edit_note/'.$row->id, 'Edit')
私のコントローラー:
function edit_note()
{
$note_id = $this->uri->segment(3);
$data['main_content'] = 'edit_note';
$this->load->view('includes/template', $data);
$this->load->library('form_validation');
$this->form_validation->set_rules('content', 'Message', 'trim|required');
if($this->form_validation->run() == TRUE)
{
$this->load->model('Note_model');
$this->Note_model->edit_note($note_id);
redirect('site/members_area');
}
}
私のモデル:
function edit_note($note_id)
{
$content = $this->input->post('content');
$data = array('content' => $content);
$this->db->where('id', $note_id);
$this->db->update('note', $data);
}
edit_noteの私の見解:
<?php
echo form_open('site/edit_note');
echo form_textarea('content', set_value('content', 'Your message'));
echo form_submit('submit', 'Change');
echo anchor('site/members_area', 'Cancel');
echo validation_errors('<p class="error">'); ?>
モデルの削除で使用したように、編集モデルでセグメントを直接取得しようとすると、編集が削除として機能しません。
この'$this-> uri-> segment(3)'の代わりに、コントローラーで$ note_idを数値に設定すると、データベースが更新されます。しかし、getting segmentを使用すると、機能しません。uriセグメントはモデルと同じようにコントローラーで利用できると思いましたが、私にはわからないことがあります。