2014-01-20 3 views
0

У меня есть следующие функции: OpenCart добавить продукт в сессииудалось установить сеанс для многомерного массива в PHP OpenCart

Рассмотрим это как мой $bean_sku и $product_id

$bean_id = 'werwer-23423s-sd-01'; 
$product_id = 120; 

public function add($product_id, $bean_sku, $qty = 1, $option = array()) { 

    if (!$option) { 
      $key = (int)$product_id; 
    } else { 
      $key = (int)$product_id . ':' . base64_encode(serialize($option)); 
    } 

    if ((int)$qty && ((int)$qty > 0)) { 
     if (!isset($this->session->data['cart'][[$bean_sku][$key]])) { echo 'not set'; 
       $this->session->data['cart'][[$bean_sku][$key]] = (int)$qty; 
     } else { echo 'session set'; 
       $this->session->data['cart'][[$bean_sku][$key]] += (int)$qty; 
      } 
    } 
    echo $this->session->cart; 
    exit; 
    $this->data = array(); 
} 

В приведенной выше функции я добавил $bean_sku Но я не могу установить сеанс. Каждый раз, когда я бегу, получаю not set.

+0

Я думаю, что проблема здесь: 'Эхо $ this-> session-> телега;' Это будет ничего не эхо. '$ This-> session' не является объектом, это массив, поэтому вам нужно сделать' print_r ($ this-> session ['cart']); '- тогда вы увидите, что даже ваш собственный код работает. Но я по-прежнему рекомендую использовать код, который предлагает Nouphal. – shadyyx

ответ

0

Try, как

$this->session->data['cart'][$bean_sku.$key] = (int)$qty; 
+0

Пробовал затем слишком неспособен установить – kndwsu

+0

Вы можете получить данные сеанса на этой странице? –

0

Попробуйте

$this->session->data['cart'][$bean_sku][$key] 

вместо

$this->session->data['cart'][[$bean_sku][$key]] 
+0

еще не могу установить – kndwsu

+0

Вы пытаетесь обновить корзину –

+0

Если у продукта id и bean_sku не существует, в противном случае необходимо обновить корзину. – kndwsu

Смежные вопросы