我现在坚持了几天。进步是,我终于可以让我的编辑功能工作了。但是,我后来意识到,它只能工作一次。如果我在第一次成功编辑/修改之后尝试编辑另一个条目,它将不再有效。
请告诉我出了什么问题......
这是我在控制器中的内容:
public function edit_job()
{
$this->validateRole('client');
$this->load->model('job_model');
$id = $this->uri->segment(3,0);
$data['my_preference'] = $this->array_to_select( $this->job_model->get_all_categories(), 'id','name');
$data['job'] = $this->job_model->get_job($id);
$this->load->view('client/edit_job', $data);
}
public function edit_job_submit()
{
$this->validateRole('client');
$this->load->model('job_model');
if ( '0' != $_POST['id'] )
{
$this->job_model->edit_job($_POST);
} else {
$this->job_model->add_job($_POST);
}
redirect('client/manage_jobs?message=Job updated.');
}
模特中的:
public function edit_job($obj)
{
//allows client to edit/update his job details
$data = array
(
'title' => $_POST['title'],
'description' => $_POST['description'],
'start_date' => date("Y-m-d", strtotime($_POST['start_date'])),
'category_id' => $_POST['category_id']
);
$this->db->where('id', $id);
$this->db->update('job', $data);
}
请,请。任何人都可以帮助我。谢谢!
答案 0 :(得分:0)
看起来您的问题就是
行$this->db->where('id', $id);
您似乎没有在模型的edit_job中定义(或传递)$ id,这意味着它不知道要更新的条目。
试一试
public function edit_job($obj)
{
//allows client to edit/update his job details
$id = $obj['id'];
$data = array
(
'title' => $obj['title'],
'description' => $obj['description'],
'start_date' => date("Y-m-d", strtotime($obj['start_date'])),
'category_id' => $obj['category_id']
);
$this->db->where('id', $id);
$this->db->update('job', $data);
}