Я пытаюсь сделать какую-то корзину с CakePHP 2, используя массивы в куки.Корзина с CakePHP 2
То, что я сделал:
public $components = array('Cookie');
public function beforeFilter(){
$this->Cookie->name= ' order_cookie';
}
кнопка вызывает эту функцию:
public function addOrder(){
$this->Cookie->write('order_cookie', array(
'order_id' => $order_id,
'quantity' => $this->request->data['addOrder']['quantity'],
'description' => $this->request->data['addOrder']['description'],
'price' => $this->request->data['addOrder']['price']
));
}
отобразить результаты в представлении order.ctp
. Это order
контроллер:
public function order(){
$this->set('myorder', $this->Cookie->read('order_cookie'));
}
По мнению order.ctp
:
<table>
<thead>
<tr>
<th>Order ID</th>
<th>Quantity</th>
<th>Description</th>
<th>Price</th>
</tr>
</thead>
<tbody>
<?php
if(isset($myorder)){
foreach($myorder as $theorder){
?>
<tr>
<td><?php echo $theorder['order_id'];?></td>
<td><?php echo $theorder['quantity'];?></td>
<td><?php echo $theorder['description'];?></td>
<td><?php echo $theorder['price'];?></td>
</tr>
</tbody>
<?php
}
}
?>
</table>
У меня есть две проблемы:
Когда я добавляю заказ, он стирает предыдущий заказ вместо добавления нового
Когда я отображения результатов, он дает мне в каждом из строк и каждая строка
Warning : Illegal string offset
Что я хочу:
Я просто хочу, что, когда клиент добавляет заказ, программы добавляет массив в cookie вместо стирания предыдущего и окончательно отображает результаты правильно.
Это работает! Большое спасибо !! – heisenberg