Twig模板引擎:获取当前网址

时间:2012-02-18 07:07:03

标签: php twig

如何从Twig模板中获取当前网址?

我正在使用Twig和PHP,没有任何其他框架。

4 个答案:

答案 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 }}

让我知道这种方法的底线是什么。