如何从Twig模板获取当前URL?
我正在使用Twig与PHP,没有使用其他框架。
以下代码在 Silex 中运行良好,并且在 Symfony2 中也肯定可行(尽管我没有测试):
{{ app.request.getRequestUri() }}
{{ app.request.requestUri }}
- eightyfive获取当前URL
当前URL由您的Web服务器提供,并写入$_SERVER
超全局变量中。通过您的服务器运行这个小脚本,<?php echo '<pre>'; print_r($_SERVER);
,并查找您要查找的值。
有关该主题的相关问题:
在TWIG中获取URL
在获取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));
在模板中使用变量,您可以使用{{ 变量名 }}
的语法。
前往 http://api.symfony.com/2.3/Symfony/Component/HttpFoundation/Request.html
或者使用{{ app.request.getUri() }}
获取完整URI。
Symfony\Component\HttpFoundation\RequestStack
。app.request_stack.getCurrentRequest.getUri
这里有一些我找到的东西,可以使用sliex框架使其通用化。 我猜我的解决方案并不完美,但它能完成工作。
在你的PHP代码中添加以下代码:
$app = new Silex\Application();
// add the current url to the app object.
$app['current_url'] = $_SERVER['REQUEST_URI'];
然后在你的Twig模板中可以这样做
{{ app.current_url }}