如何从Twig模板中获取当前网址?
我正在使用Twig和PHP,没有任何其他框架。
答案 0 :(得分:27)
下面的内容适用于Silex,当然也适用于Symfony2,因为它们共享Request类(我没有测试过):
{{ app.request.getRequestUri() }}
答案 1 :(得分:6)
查找当前网址
当前网址由您的网络服务器提供,并写入$_SERVER
超级全局。通过您的服务器和root用户运行这个小脚本<?php echo '<pre>'; print_r($_SERVER);
,找到您要查找的值。
有关此主题的相关问题:
The PHP manual describes the nature of the available $_SERVER
values here
在TWIG中获取网址
获得URL后,在Twig模板实例上调用render(...)
时,需要将其作为模板变量传递。例如,您可以对此进行编码。
$current_url = // figure out what the current url is
// pass the current URL as a variable to the template
echo $template->render(array('current_url' => $current_url));
要在模板中使用该变量,请使用{{ variable_name }}
语法。
答案 2 :(得分:4)
转到http://api.symfony.com/2.3/Symfony/Component/HttpFoundation/Request.html
或:{{ app.request.getUri() }}
表示完整的Uri。
答案 3 :(得分:0)
这里我发现了一些使用sliex Framework使其通用的东西。 我想我的解决方案并不完美,但它已经完成了工作。
在PHP代码中添加以下代码:
$app = new Silex\Application();
// add the current url to the app object.
$app['current_url'] = $_SERVER['REQUEST_URI'];
然后在你的Twig模板中你可以做到
{{ app.current_url }}
让我知道这种方法的底线是什么。