我正在使用代码点火器。我必须具有购物车功能,并且必须将产品ID保存到Cookie,但是无法将数组添加到Cookie。我添加cookie的控制器代码是
public function add_to_cart(){
$product_id = $this->uri->segment(3);
$cookie= array(
'name' => 'cookie_product',
'value' => $product_id,
'expire' => '3600',
);
$this->input->set_cookie($cookie);
var_dump($this->input->cookie('cookie_product',true));die;
}
$product_id
的产品ID例如41。需要帮助!
答案 0 :(得分:0)
购物车听起来是个不错的解决方案。
您的原始代码无法正常工作的原因是您试图传递一个数组,而不是将其分解为单个参数。
如果您确实想对其进行修复,则您的代码应为:
$this->input->set_cookie($cookie['name'], $cookie['value'], $cookie['expire']);
顺便说一句,您可以通过使用序列化和反序列化将cookie作为字符串而不是数组来存储,从而将数组存储在cookie中:
$this->input->set_cookie('cookie_product', serialize($cookie));
var_dump(unserialize($this->input->cookie('cookie_product',true)));
答案 1 :(得分:0)
您不必直接使用Cookie。使用可以为您处理Cookie的购物车库。
https://www.codeigniter.com/userguide3/libraries/cart.html
$this->load->library('cart');
$data = array(
'id' => 'sku_123ABC',
'qty' => 1,
'price' => 39.95,
'name' => 'T-Shirt',
'options' => array('Size' => 'L', 'Color' => 'Red')
);
$this->cart->insert($data);
并查看项目
<?php print_r($this->cart->contents()); ?>