0

我正在尝试将一些数据添加到 codeigniter (HMVC codeigniter) 切菜车并显示它,我在主购物车控制器中使用此方法:

function add_to_cart(){
    $this->load->library('cart');

    // Get data
    $userID = $this->input->post('userID');
    $eventID = $this->input->post('eventID');
    $tickedID = $this->input->post('tickedID');

    // Get ticket data
    $this->load->module('ticket');
    $ticket_query = $this->ticket->get_where($tickedID);

    //echo $this->session->all_userdata();

    foreach($ticket_query->result() as $ticket_data){
        $ticketPrice = $ticket_data->price;
        $ticketCategory = $ticket_data->category;
    }

    //echo 'tickedID: '.$tickedID.' price: '.$ticketPrice.' category: '.$ticketCategory;

    // Add item to cart
    $data_items = array(
           'id'      => $tickedID,
           'qty'     => 1,
           'price'   => $ticketPrice,
           'category'    => $ticketCategory,
           'options' => array()
        );

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

    $cart = $this->cart->contents();
    echo '<pre>';
    echo print_r($cart);
    echo '</pre>';




}

基本上我从会话中获取userID,eventIDtickedID变量,然后我运行查询以获取带有特定 ID 的勾选。我遍历查询结果并从中获取$thicketPrice$ticketCategory变量。然后我尝试设置变量$data_items以插入购物车本身。最后我尝试echo照顾的内容,我得到的只是一个空数组。

会话、数据库和购物车库都是自动加载的,并且会话正在使用数据库,它们有ci_sessions表。会话也有一个加密密钥,有什么问题?

4

2 回答 2

3

成功插入购物车的一些注意事项:

  • '价格' > 0
  • 'name'(或类似字段)最好不要使用 unicode
于 2013-11-04T09:01:19.840 回答
1

您需要一个name索引,因为它是强制性的。

  • id - 您商店中的每个产品都必须有一个唯一标识符。通常这将是“sku”或其他此类标识符。
  • 数量 - 购买的数量。
  • price - 商品的价格。
  • name - 项目的名称。
  • 选项 - 识别产品所需的任何附加属性。这些必须通过数组传递。

重要提示:上面的前四个数组索引(id、qty、price 和 name)是必需的。如果您省略其中任何一个,数据将不会保存到购物车中。第五个索引(选项)是可选的。它旨在用于您的产品具有与之关联的选项的情况。使用数组作为选项,如上所示。

来自http://ellislab.com/codeigniter/user-guide/libraries/cart.html

所以,然后是这样的:

$data_items = array(
       'id'      => $tickedID,
       'qty'     => 1,
       'price'   => $ticketPrice,
       'name'    => $someName,
       'options' => array('category'=>$ticketCategory)
    );
于 2013-09-04T12:54:14.117 回答