我正在尝试将一些数据添加到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
,eventID
和tickedID
变量,然后运行查询以获取具有特定ID的标记。我运行查询结果并从中获取$thicketPrice
和$ticketCategory
变量。然后我尝试将$data_items
中的变量设置为插入购物车本身。最后,我尝试echo
护理的内容,我得到的只是一个空数组。
会话,数据库和购物车库都是自动加载的,会话正在使用数据库,它们有ci_sessions
表。会话还有一个密钥,出了什么问题?
答案 0 :(得分:3)
成功购物车的注意事项:
答案 1 :(得分:1)
您需要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)
);