Я использую воспламенитель кода. Мне нужно создать функцию корзины, и мне нужно сохранить идентификаторы продуктов в 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 имеет идентификатор моего продукта, например 41. нужна помощь !
Я не знал об этом
использовать библиотеку CI cart, в ней есть все необходимые функции
спасибо, библиотека тележек выполнила мою работу, спасибо за помощь @prasannaputtaswamy





Корзина звучит как хорошее решение.
Причина, по которой ваш исходный код не работал, заключается в том, что вы пытались передать массив вместо того, чтобы разбивать его на отдельные параметры.
Если вы действительно хотите это исправить, ваш код должен быть:
$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)));
Вам не нужно использовать файлы 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()); ?>
@AmmarKhan - круто, пожалуйста, подумайте, чтобы принять ответ, если сработало.
для корзины, почему вы не используете библиотеку корзины по умолчанию для CI