如何在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变量)。