将数组添加到cookie codeigniter

时间:2018-07-23 13:57:04

标签: codeigniter cookies

我正在使用代码点火器。我必须具有购物车功能,并且必须将产品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。需要帮助!

2 个答案:

答案 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()); ?>
相关问题