我通过以下方式将对象存储到会话中:
$this->request->session()->write('order', $order);
在另一个控制器中,我尝试向同一对象添加另一个属性:
$this->request->session()->write('order.client_id', $client->id);
但是由于某种原因,这会覆盖整个对象,我只剩下一个只有一个属性的对象,即新创建的client_id。
正确的方法是什么?
点用于表示嵌套数组。此表示法用于使用名称/键的所有会话组件方法。
-- 与会话数据交互
您确定您的$order
变量是数组而不是对象吗?
如果$order
是一个对象,你必须获取该对象,更改它,然后将其再次放入会话中。
$order = $this->request->session()->read('order');
$order->client_id = $client->id;
$this->request->session()->write('order', $order);
能够通过执行以下操作来解决此问题:
$order = $this->request->session()->read('order');
$order->client_id = $client->id;
$this->request->session()->write('order', $order);