如何从多维cakephp会话中删除元素

How to remove element from multidimensional cakephp session

我在电子商务网站上工作,该网站存储了会话中所有运行良好的购物车产品。 这是购物车会话的调试。

debug($this->request->getsession()->read('cart'));

[
    (int) 1 => [
        (int) 0 => [
            'id' => (int) 1,
            'picture' => '1_1.webp',
            'sku' => 'TH447WA38OUMINDFAS',
            'name' => 'The Vanca Multicoloured Printed Strappy Top',
            'size' => 'S',
            'price' => '480'
        ]
    ],
    (int) 2 => [
        (int) 0 => [
            'id' => (int) 2,
            'picture' => '2_1.webp',
            'sku' => 'AL384WA86QOSINDFAS',
            'name' => 'All About You Pink Embroidered Blouse',
            'size' => 'S',
            'price' => '1330'
        ]
    ],
    (int) 3 => [
        (int) 0 => [
            'id' => (int) 3,
            'picture' => '3_1.webp',
            'sku' => 'RE367WA35NDKINDFAS',
            'name' => 'Renka Comfortable Black Color Seamless Summer Tops For Women',
            'size' => 'S',
            'price' => '495'
        ]
    ]
]

现在我想从购物车中删除任何行,但这对我不起作用。

unset($this->request->getsession()->read('cart')[1]);

应该只是

$this->request->getSession()->delete('cart.1');

访问会话数组时可以使用点符号

您也可以一条命令读取和删除数据

$cart =  $this->request->getSession()->consume('cart');

查看手册here and the API here and here