私は2つのコントローラがあります。ライブラリカートの中身を表示し、両方でCodeIgniterのキャッシュコントローラの問題
cart/
cart/buy
を
<tbody>
<?php foreach($this->cart->contents() as $items): ?>
<tr>
<td><?php echo $items['name'] ?></td>
<td>$ <?php echo $this->cart->format_number($items['price']); ?></td>
<td><?php echo $items['qty'] ?></td>
<td>$ <?php echo $this->cart->format_number($items['subtotal']); ?></td>
</tr>
<?php endforeach; ?>
</tbody>
私の問題コントローラは、私が追加したときにがキャッシュに残って買うということですカートへの最初のアイテム。コントローラカート/は5つのアイテムとコントローラを持っていますカート/購入 1アイテムがあります。私はデータがカートに存在する場合に知っていて、別のページにリダイレクトする、
function buy()
{
$this->output->set_header('Last-Modified: ' . gmdate("D, d M Y H:i:s") . ' GMT');
$this->output->set_header('Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0');
$this->output->set_header('Pragma: no-cache');
$this->output->set_header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
if($this->cart->contents())
{
$this->load->view('web/products/buy_view');
}
else
{
redirect('cart');
}
}
しかし、次を参照してください。私は、私はこの部分を解決することができたすべての項目に
を参照するには、Ctrl + F5キーを押す必要がありますカートが空の場合。
どうやら場合(の$ this - > cart->の内容は、())例えばカートがカートにカート/に充填が、空することができますように、「キャッシュに残っている」/となるまでを買いますCtrl F5を押すと、まだ失敗しています。
これを修正する方法はありますか、それとも間違っているのでしょうか?
p.d.カートのコントローラで私のaddメソッド:カート・モデルで
function add_item()
{
if($this->cart_model->validate_add_item() == TRUE)
{
redirect('cart');
}
}
マイaddメソッド:
function validate_add_item()
{
$id = $this->input->post('producto_id');
$cantidad = $this->input->post('cantidad');
$this->db->select('vNombre, dPrecio');
$this->db->where('iIdProducto', $id);
$query = $this->db->get('product', 1);
if($query->num_rows > 0)
{
foreach ($query->result() as $row)
{
$data = array(
'id' => $id,
'qty'=> $cantidad,
'price' => $row->dPrecio,
'name' => $row->vNombre
);
$this->cart->insert($data);
return TRUE;
}
}
else
{
return FALSE;
}
}
私は他の方法を使用します。ADD_ITEM() – csotelo
[OK]を、私の編集記事を参照してください – csotelo
残念ながら、私は「することができ、多くのことができますこと問題を参照してくださいが、それは他の誰かを助けるでしょう。私はちょうどあなたにアップヴォーテを与えて、あなたに運が欲しいです。 –