朋友,我在购物车中添加了用于会话的产品列表。enter image description here
将产品插入购物车后,结果如图片所示。我想删除产品。我可以手动将其删除。
$carrinho = $this->request->session();
$carrinho->delete('carrinho.0');
return $this->redirect(['action' => 'index']);
但是我想动态地执行此操作,用户可以选择要排除的项目。
<?= $this->Html->link(__('Delete'), ['action' => 'delete', $carrinho->index]); ?>
我试图搜索索引并像这样遍历参数,但这是不正确的。我尝试了var_dump($购物车),它也没有显示任何内容。
public function delete($index = null)
{
$carrinho = $this->request->session();
$carrinho->delete('carrinho.index');
return $this->redirect(['action' => 'index']);
}
如何搜索会话数组的索引或键以正确将其删除?我感谢任何评论。
$carrinho->delete('carrinho.index');
将从会话中删除字面上称为carrinho.index
的内容。它根本不引用$index
变量。您想要的是$carrinho->delete("carrinho.$index");
。请注意,引号从单引号更改为双引号,以便进行变量插值(例如,如果$index
为3,则解析为carrinho.3
;如果只是单引号,则它将查找实际称为carrinho.$index
当然不存在。]