我在网上搜索了很多如何访问全局$_SESSION
从 TWIG 模板中获取数组并发现:{{app.session.get('index')}}
,但是当我调用它时,它返回一个空字符串。我有一个$_SESSION['filter']['accounts']
我在调用时收到此错误{{app.session.get('filter').accounts}}
: Item "accounts" for "" does not exist
。我做错了什么?
{{app.session}}
指的是Session
对象而不是$_SESSION
大批。我不认为$_SESSION
数组是可访问的,除非您显式地将其传递给每个 Twig 模板,或者您进行了扩展以使其可用。
Symfony2 是面向对象的,所以你应该使用Session
对象来设置会话属性而不依赖于数组。这Session
对象会将这些内容从您那里抽象出来,因此更容易将会话存储在数据库中,因为存储会话变量对您来说是隐藏的。
因此,在会话中设置属性并使用以下命令检索树枝模板中的值:Session
object.
// In a controller
$session = $this->get('session');
$session->set('filter', array(
'accounts' => 'value',
));
// In Twig
{% set filter = app.session.get('filter') %}
{% set account-filter = filter['accounts'] %}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)