0

モデルで機能するフォームがあります。

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(とにかく適切ではありません)。

どうすればこれを解決できますか?

4

1 に答える 1

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ビューです。Contributor / emptyPage.phpには、これしかありません。

<?php echo $submit; ?>

そして、それは本来のように機能します-リダイレクトに使用できる新しいアドレスのみを返します(header('Location...たとえば)。

于 2012-06-24T15:52:51.843 に答える