问题在codeigniter保存的更新信息 [英] Issue with saving an update information in Codeigniter

查看:139
本文介绍了问题在codeigniter保存的更新信息的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的目标是更新job_contract。
有迹象表明,这应该是做了两个方面。 1.通过客户端的页面,并通过2.供应商的页面。

My goal is to update job_contract. There are two ways that this SHOULD be done. 1. through the client's page AND 2. through the provider's page.

我现在有在我的工作模式是:

What I currently have is in my job model is:

 public function update_job_contract($post_obj)
{
    $id = $post_obj['id'];
    $data = array 
    (
        'client_feedback' => $post_obj['client_feedback'],
        'client_notetoself' => $post_obj['client_notetoself'],
        'contract_status' => $post_obj['contract_status'],
        'client_id' => $this->auth_model->get_user_id()
    );

    $this->db->insert('job', $data);
}

public function provider_update_job_contract($post_obj)
{
    $id = $post_obj['id'];
    $data = array 
    (
        'provider_feedback' => $post_obj['provider_feedback'],
        'provider_notetoself' => $post_obj['provider_notetoself'],
        'provider_id' => $this->auth_model->get_user_id()
    );

    $this->db->insert('job', $data);
}

我在我的客户机控制器页面下面几行:

I have the following lines in my client controller page:

public function update_job_contract() 
{
    $this->validateRole('client');
    $this->load->model('job_model');

    $id = $this->uri->segment(3,0);


    $data['job'] = $this->job_model->get_job($id);  

    $this->load->view('client/update_job_contract', $data);
}   

public function update_job_contract_submit() 
{
    $this->validateRole('client');
    $this->load->model('job_model');

    if ( '0' == $_POST['id'] ) {
    $this->job_model->update_job_contract($_POST);
    //} 
    redirect('client/manage_job_contracts?message=Congratulations!');
}

和这在我的供应商控制器页:<​​/ P>

And this in my provider controller page:

 public function provider_update_job_contract() 
{
    $this->validateRole('provider');
    $this->load->model('job_model');

    $id = $this->uri->segment(3,0);


    $data['job'] = $this->job_model->get_job($id);  

    $this->load->view('provider/provider_update_job_contract', $data);
}   

public function provider_update_job_contract_submit() 
{
    $this->validateRole('provider');
    $this->load->model('job_model');

    if ( '0' == $_POST['id'] ) {
    $this->job_model->provider_update_job_contract($_POST);
    } 
    redirect('provider/job_contracts?message=Congratulations!');
}

问题是,它们并不真正更新的条目。请帮助..

Problem is, they don't really update the entries. Please help..

推荐答案

您正在使用 $这个 - &GT; DB-&GT;插入(),但随着活动记录更新你应该使用行 $这个 - &GT; DB-GT&;更新()

You are using $this->db->insert(), but with Active Record to update the row you should be using $this->db->update()

$data = array(
   'title' => $title,
   'name' => $name,
   'date' => $date
);

$this->db->where('id', $id);
$this->db->update('mytable', $data);

换句话说你的职责应该是这样的:

Another words your functions should look like this:

public function update_job_contract($post_obj)
{
    $id = $post_obj['id'];
    $data = array 
    (
        'client_feedback' => $post_obj['client_feedback'],
        'client_notetoself' => $post_obj['client_notetoself'],
        'contract_status' => $post_obj['contract_status'],
        'client_id' => $this->auth_model->get_user_id()
    );
    $this->db->where('id', $id);
    $this->db->update('job', $data);
}

public function provider_update_job_contract($post_obj)
{
    $id = $post_obj['id'];
    $data = array 
    (
        'provider_feedback' => $post_obj['provider_feedback'],
        'provider_notetoself' => $post_obj['provider_notetoself'],
        'provider_id' => $this->auth_model->get_user_id()
    );
    $this->db->where('id', $id);
    $this->db->update('job', $data);
}

此外,该控制器$ _ POST里面应该有$这个 - >替换输入 - >后()

Also, inside the controllers $_POST should be replaced with $this->input->post()

使用这个作为例子:

public function provider_update_job_contract_submit() 
{
    $this->validateRole('provider');
    $this->load->model('job_model');

    $post = $this->input->post();
    if ( '0' == $post['id'] )
    {
        $this->job_model->provider_update_job_contract($post);
    } 
    redirect('provider/job_contracts?message=Congratulations!');
}

请确保您更新以同样的方式其他控制器

Make sure you update other controllers in the same way

这篇关于问题在codeigniter保存的更新信息的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆