如何在Twig中通过app变量访问到User, Request, Session和更多对象

3.4 版本
维护中的版本

在每个请求中,Symfony将会在Twig引擎和PHP引擎默认设置一个全局模板变量app。该app变量是一个GlobalVariables实例,它将让你自动访问到程序一些特定的变量。比如:

app.user
表示当前用户对象,如果没有就是null。这个变量中存储的值,可以是一个UserInterface对象,任何实现了__toString()方法的对象,或者甚至是一个常规字符串。 object, any other object which implements a __toString() method or even a regular string.
app.request
这个Request 对象就是当前请求对象(取决于你的程序,它可能是一个子请求或者是一个常规请求,后面会解释)
app.session
这个Session对象表示当前用户的session,如果没有就是null
app.environment
当前程序的环境名称(dev, prod, 等等).
app.debug
如果在debug模式下就是true,false则不是。
1
2
3
4
5
<p>Username: {{ app.user.username }}</p>
{% if app.debug %}
    <p>Request method: {{ app.request.method }}</p>
    <p>Application Environment: {{ app.environment }}</p>
{% endif %}
1
2
3
4
5
<p>Username: <?php echo $app->getUser()->getUsername() ?></p>
<?php if ($app->getDebug()): ?>
    <p>Request method: <?php echo $app->getRequest()->getMethod() ?></p>
    <p>Application Environment: <?php echo $app->getEnvironment() ?></p>
<?php endif ?>

你也可以向其添加你自己的全局模板变量 。查看如何注入变量到所有模板(全局Twig变量)

本文,包括例程代码在内,采用的是 Creative Commons BY-SA 3.0 创作共用授权。

登录symfonychina 发表评论或留下问题(我们会尽量回复)