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

В TWIG можно получить абсолютный URL-адрес ссылки с переменными веточки в нем?

У меня есть несколько URL-адресов, которые выглядят следующим образом:

{{domainID}}/action/{{userId}}/anotherAction

И последний URL указывает на:

http://localhost/viewA/{{domainID}}/action/{{userId}}/anotherAction

Однако, если я пытаюсь загрузить viewA из viewB через iframe, ссылка внутри viewA вместо указания на:

http://localhost/viewA/{{domainID}}/action/{{userId}}/anotherAction

он будет указывать на:

http://localhost/viewB/{{domainID}}/action/{{userId}}/anotherAction

и пользователь окажется на странице 404, если он будет следовать последнему.

Мой вопрос:

В любом случае, чтобы получить абсолютный путь URL-адреса, построенного таким образом в twig?

ИЗМЕНИТЬ

Определение маршрута:

@Route("/domain/details/{domainId}", name="domain_detailed_view")

Я попытался получить абсолютный путь таким образом:

{{ url({{domainID}}/action/{{userId}}/anotherAction) }}

но я получаю эту ошибку:

Хеш-ключ должен быть цитируемой строкой, числом, именем или выражением заключенные в круглые скобки

4b9b3361

Ответ 1

Функции url или path принимают имя маршрута, а не путь. Вы можете дать ему ассоциативный массив в качестве необязательного второго аргумента, если для маршрута требуются параметры.

Например:

{{ url('domain_detailed_view', { 'domainId': domainId, 'userId': userId }) }}

http://symfony.com/doc/master/reference/twig_reference.html

Ответ 2

Я знаю это старый и ответил, но с symfony 3 и twig вы можете сделать:

{{ app.request.getSchemeAndHttpHost() }}

/* will match even port :) i.e.
 * http://localhost:8000
 * http://localhost
 * http://example.com
 */

что чрезвычайно полезно: D

Ответ 3

У вас есть два способа сделать то же самое. В общем случае вы можете использовать url() или путь внутри функции absoulute_url, например absoulute_url (путь (...)). Рассмотрим следующее:

// example 1:
{{ url('domain_detailed_view', { 'domainId': domainId, 'userId': userId }) }}
// example 2:
{{ absolute_url(path('domain_detailed_view', { 'domainId': domainId, 'userId': userId })) }}">

// note - those two do the same thing

Как правило, с Symfony 2.7 вы можете использовать absolute_url() с утверждениями и относительным путем (относительно веб-корневой папки). Так вы можете использовать их для установки абсолютного пути к изображению в комплекте и в основной веб-папке:

[приложение/SRC/UserBundle/Ресурсы/государственные/IMG/image.jpg]

<img src="{{ absolute_url(asset('bundle/user/img/image.jpg')) }}" /> // new way since 2.7 up
<img src="{{ asset('bundle/user/img/image.jpg', absolute: true ) }}" /> // old way below 2.7 removed in symfony 3.0

[веб/CSS/IMG/some.jpg]

<img src="{{ absolute_url('css/img/some.jpg') }}" /> 

Это то, что Symfony рекомендует использовать при рендеринге просмотра электронной почты. http://symfony.com/doc/current/email.html