我是symfony2&的新手。使用Symfony 2.5。我正在关注Symfony官方文档以获取会话指导。要从会话中存储和检索数组,我正在关注this official documentation。
问题背景
当用户从首页登录并进入网站时,我会开始一个新会话,并使用以下代码存储信息。
$sessionData = array(
'unit' => $unit,
'client' => $client,
'group' => $group,
);
$session = new Session();
$session->set('fw', $sessionData);
当我print_r
会话信息时,它会给我以下输出,这是预期的。
Array
(
[fw] => Array
(
[unit] => shoes
[client] => nike
[group] => north
)
)
问题1
现在,当我想向此数组添加更多数据时,我会按照此处给出的相同symfony文档http://symfony.com/doc/current/components/http_foundation/sessions.html#attributes 并执行以下操作。
$this->get("session")->set('fw/storeid', $storeid);
根据文档,我的新商店ID详细信息应作为FW数组中的key =>值对存储在会话中。但是,它保存原样。当我print_r
时,这是我得到的输出。
Array
(
[fw] => Array
(
[unit] => shoes
[client] => bata
[group] => north
)
[fw/storeid] => abc1
)
我做错了吗?是否有不同的方法在会话中将数据存储在数组中?
问题2
从上面的会话中,当我想要获取一些数据时,我就像文档所说的那样。 $this->get("session")->get('fw/unit');
。但是,这给了我未定义的索引错误。再一次,在会话中从数组中获取数据的正确方法是什么?
是否有任何模式详细示例可供选择?
作为一种解决方法,我目前按照以下方式执行此操作(正是文档说我们可以避免):
$sessiondata = $this->get("session")->get('fw');
$sessiondata['storeid'] = $storeid;
$this->get("session")->set('fw', $sessiondata);