与编辑功能冲突导致Codeigniter

时间:2014-04-04 16:40:31

标签: php arrays codeigniter post edit

我现在坚持了几天。进步是,我终于可以让我的编辑功能工作了。但是,我后来意识到,它只能工作一次。如果我在第一次成功编辑/修改之后尝试编辑另一个条目,它将不再有效。

请告诉我出了什么问题......

这是我在控制器中的内容:

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

请,请。任何人都可以帮助我。谢谢!

1 个答案:

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