如何在Twig中通过app变量访问到User, Request, Session和更多对象
在每个请求中,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变量)。