CodeIgniter - 在DB插入后返回值

时间:2012-06-24 15:38:56

标签: mysql codeigniter

我有一个与我的模型一起使用的表单:

public function addGame($data, $parent_id = '0') {

    // passing variables from POST
    ...

    // insert array
    $ins = array(
        ...
    );

    $q = $this->db->insert('games',$ins);
    $last = $this->db->insert_id();
    return site_url().'/'.$last.'/'.$slug;
}

控制器:

public function addGame() {

    $this->load->model('contrib_model');

    if ($this->form_validation->run()) {
        $this->contrib_model->addGame($this->input->post()); //submits data
    } else {
        $this->layout->view('contribute/addGame', $data); //loads view
    }
}

我的观点是 - 想要最后return值...返回。我使用压缩,所以我不能echo它(无论如何它都不适合)。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

正如Esailija所说,我通过创建视图解决了这个问题。首先,我使用简单的布局引擎,所以我不得不摆脱它。现在我的控制器看起来像这样(重要的部分):

  if ($this->form_validation->run()) {
        $data['submit'] = $this->contrib_model->addGame($this->input->post()); //submits data
        $this->load->view('contribute/emptyPage', $data); //loads view
    } else {
        $this->layout->view('contribute/addGame', $data); //loads view
    }

如您所见,首先加载视图是不同的 - 这是纯CodeIgniter视图。在contrib / emptyPage.php我只有这个:

<?php echo $submit; ?>

它的工作原理应该只返回新地址,我可以用它来重定向(例如header('Location...)。