Подтвердить что ты не робот

Twig templates engine: получить текущий url

Как получить текущий URL-адрес из шаблона Twig?

Я использую Twig с PHP, без каких-либо других фреймворков.

4b9b3361

Ответ 1

Поиск текущего URL

Текущий URL-адрес предоставляется вашим веб-сервером и записывается в супер-глобальный $_SERVER. Запустите этот небольшой script, <?php echo '<pre>'; print_r($_SERVER); через свой сервер и выполните команду root, чтобы найти нужные вам значения.

Похожие вопросы на эту тему:

В руководстве по PHP описывается характер доступных значений $_SERVER здесь.

Получение URL-адреса в TWIG

После того, как у вас есть URL-адрес, вы должны передать его как переменную шаблона при вызове render(...) в экземпляре шаблона Twig. Например, вы можете закодировать это.

$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

Следующие действия выполняются в Silex и, безусловно, в Symfony2, поскольку они разделяют класс Request (я еще не тестировал):

{{ app.request.getRequestUri() }}

Ответ 4

Помните, что в настоящий момент вы должны использовать Symfony\Component\HttpFoundation\RequestStack.

См. http://symfony.com/blog/new-in-symfony-2-4-the-request-stack.

Как и в случае с Symfony 2.4, лучше всего никогда не вводить службу запроса, а вместо этого вводить службу request_stack [...]

Итак, в приложении Silex это может быть достигнуто с помощью

app.request_stack.getCurrentRequest.getUri

Ответ 5

Здесь что-то я нашел, чтобы сделать его общим с помощью 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 }}

Позвольте мне знать, что такое линия бота этого метода.