Symfony2:PHP模板中的Session Global变量

时间:2012-04-11 16:35:27

标签: php templates session symfony

Symfony doc说:

  

在每个请求期间,Symfony2将设置一个全局模板变量app   默认情况下,在Twig和PHP模板引擎中。 app变量是   一个GlobalVariables实例,它可以让你访问一些   自动应用程序特定变量:
app.security -   安全上下文。
app.user - 当前用户对象   app.request - 请求对象。
app.session - 会话   对象。
app.environment - 当前环境(dev,prod,   ()app.debug - 如果处于调试模式,则为真。否则为假。

示例:
在树枝上:{{ app.request.method }}
在PHP中:echo $app->getRequest()->getMethod() 在树枝上:{{ app.user.username }}
但对于会话对象:
在树枝上:{{ app.session.varname }}
在PHP中:// I don't know, do you know how to call it?

我试过了:$session = $app->getSession('uid');但是当我尝试将它存储到数据库时它告诉我:

  

Catchable Fatal Error:类的对象   Symfony \ Component \ HttpFoundation \ Session无法转换为   C:\ wamp \ www ...

中的字符串

在PHP模板方面缺乏资源,但在我的情况下,由于某些原因我无法切换。

问题换句话说,PHP模板中的等价物是什么:
{{ app.session.varname }}

3 个答案:

答案 0 :(得分:14)

在树枝上:{{ app.session.varname }}

在PHP中:echo $app->getSession()->get('uid');

答案 1 :(得分:0)

$session = $this->get('session');

if ($session->has('varname')) {
    echo $session->varname
} 

答案 2 :(得分:0)

您是否尝试过error_log $ app-> getSession()来查看它返回的内容?

error_log(var_dump($app->getSession(), true));