8

Symfony 文档 说:

在每次请求期间,Symfony2 默认会在 Twig 和 PHP 模板引擎中设置一个全局模板变量 app。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');但是当我尝试将其存储到数据库时,它告诉我:

可捕获的致命错误:无法将 Symfony\Component\HttpFoundation\Session 类的对象转换为 C:\wamp\www 中的字符串...

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

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

4

3 回答 3

14

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

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

于 2012-04-11T18:54:41.077 回答
0
$session = $this->get('session');

if ($session->has('varname')) {
    echo $session->varname
} 
于 2012-04-11T17:16:31.820 回答
0

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

error_log(var_dump($app->getSession(), true));
于 2012-04-11T19:39:03.207 回答