从 TWIG 模板访问会话
我在网上搜索了很多如何从TWIG模板访问全局数组,发现这个:,但是当我调用它时,它返回一个空字符串。我有一个,我在调用时收到此错误: 。我做错了什么?$_SESSION
{{app.session.get('index')}}
$_SESSION['filter']['accounts']
{{app.session.get('filter').accounts}}
Item "accounts" for "" does not exist
我在网上搜索了很多如何从TWIG模板访问全局数组,发现这个:,但是当我调用它时,它返回一个空字符串。我有一个,我在调用时收到此错误: 。我做错了什么?$_SESSION
{{app.session.get('index')}}
$_SESSION['filter']['accounts']
{{app.session.get('filter').accounts}}
Item "accounts" for "" does not exist
{{app.session}}
引用对象而不是数组。我不认为数组是可访问的,除非你明确地将其传递给每个Twig模板,或者你做了一个扩展,使它可用。Session
$_SESSION
$_SESSION
Symfony2 是面向对象的,因此您应该使用该对象来设置会话属性,而不是依赖于数组。该对象会将这些东西从您那里抽象出来,因此更容易将会话存储在数据库中,因为存储会话变量对您是隐藏的。Session
Session
因此,在会话中设置属性,并使用对象检索 twig 模板中的值。Session
// 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'] %}
希望这有帮助。
问候,
马特
设置树枝
$twig = new Twig_Environment(...);
$twig->addGlobal('session', $_SESSION);
然后在模板中访问会话值,例如
$_SESSION['username'] in php file Will be equivalent to {{ session.username }} in your twig template