0

コントローラーでコマンドを発行して、カートからアイテムを削除しようとしています。これが私のコードです:

function remove($rowid) {   
    $data = array(
        'rowid'   => $rowid,
        'qty'     => 0
    );

    $this->cart->update($data);

    redirect('bookings');
}

リンクをクリックしてアイテムを削除すると、「404 ページが見つかりません」というエラーが返されます。これは URL の例です。

http://example.com/reservation/bookings/remove/c81e728d9d4c2f636f067f89cc14862c

「remove()」関数は、問題なく動作する「add()」と同じファイルにあります。

「add()」関数のコードは次のとおりです。

public function add()
{
    $this->load->model('Bookings_model');
    $this->load->helper('url');
    $this->load->library('session');
    $this->load->library('cart');

    $bookings = $this->Bookings_model->get($this->input->post('id'));

    $data['type'] = $this->input->post('type');
    $data['checkin'] = $this->input->post('checkin');
    $data['checkout'] = $this->input->post('checkout');
    $data['nights'] = (strtotime($data['checkout']) - strtotime($data['checkin'])) / (60 * 60 * 24);

    $insert = array(
        'id' => $this->input->post('id'),
        'name' => $bookings->room_type,
        'checkin' => $data['checkin'],
        'checkout' => $data['checkout'],
        'nights' => $data['nights'],
        'price' => $bookings->default_price,
        'qty' => 1,
        'amount' => $bookings->default_price
    );

    $this->cart->insert($insert);

    redirect('bookings');
}

私はすべてを試しましたが、2日経ちましたが、まだ解決策を見つけることができません.

4

2 に答える 2

2

この関数を使用して、カート セッションからアイテムを削除します。

function remove($rowid){
    $this->load->library('cart');
    $data = array();
   foreach($this->cart->contents() as $items){
       if($items['rowid'] != $rowid){
           $data[] = array('id' => $items['rowid'],
                           'qty' => $items['qty'],
                           'price' => $items['price'],
                           'name' => $items['name']);
       }
   }

   $this->cart->destroy();
   $this->cart->insert($data);
   redirect('bookings');
}
于 2015-05-30T10:35:53.850 に答える
0

使用する方が良い:

  public function delete_item($id)
    {            
        $this->db->where('itemid', $id);
        $res = $this->db->delete('mycart');
        return $res; 
    } 

そしてあなたのコントローラーで:

   function remove()
   {
         $result = $this->model_name->delete_item($id);
         if($result)
                    redirect('view or controller');

モデルから直接リダイレクトすることはありません。いつかうまくいくかもしれませんが、ほとんどの場合失敗します...

   }
于 2012-08-21T09:23:50.510 に答える