【问题标题】:Having trouble to remove an array item in Session on symfony 3.4.*在 symfony 3.4 上的 Session 中删除数组项时遇到问题。*
【发布时间】:2026-02-13 20:25:02
【问题描述】:

对于我自己的购物车管理,我创建了一个 Cart、CartItem 和 CartController 类来管理 Items。
客户的购物车是这样的(下图中的 CartItem 对象数组)

会话存储上的购物车数组

而且我在使用这个功能时遇到了一些麻烦:

key = "_cart" , id = an unique identifier for CartItem
$this->session->remove($this->key . '/' . $id);

问题是:当我使用该函数时,它将 _cart 数据转换为这样的对象:

.

要恢复:购物车数据已转换为对象

{1:{CartItem1},2:{CartItem2}}

而不是像

这样的预期数组
[CartItem1,CartItem2]

(例如,对于类似 JSON 的表示。)尤其是当我删除不在末尾的项目时。它保持数组格式。

怎么了?

【问题讨论】:

    标签: php json symfony session symfony-3.4


    【解决方案1】:

    forget 方法将从会话中删除一条数据。如果您想从会话中删除所有数据,您可以使用 flush 方法:

    $value = $request->session()->pull('id');
    

    $request->session()->forget('key');
    

    更多:https://laravel.com/docs/5.3/session#deleting-data

    【讨论】: