symfony - array - twig documentation
En TWIG, ¿es posible obtener la URL absoluta de un enlace con variables twig en ella? (3)
Las funciones url
o path
toman el nombre de la ruta, no la ruta. Puede darle una matriz asociativa como segundo argumento opcional si la ruta requiere parámetros.
Por ejemplo:
{{ url(''domain_detailed_view'', { ''domainId'': domainId, ''userId'': userId }) }}
Tengo varias URL que se ven así:
{{domainID}}/action/{{userId}}/anotherAction
Y la última URL apunta a:
http://localhost/viewA/{{domainID}}/action/{{userId}}/anotherAction
Sin embargo, si intento cargar viewA
desde viewB
través de un iframe, el enlace dentro de viewA
lugar de apuntar a:
http://localhost/viewA/{{domainID}}/action/{{userId}}/anotherAction
señalará a:
http://localhost/viewB/{{domainID}}/action/{{userId}}/anotherAction
y el usuario terminará en una página 404 si sigue al último.
Mi pregunta es:
¿Hay alguna forma de obtener la ruta absoluta de una url construida de esa manera en twig?
EDITAR
La definición de ruta es:
@Route("/domain/details/{domainId}", name="domain_detailed_view")
Traté de obtener el camino absoluto de esta manera:
{{ url({{domainID}}/action/{{userId}}/anotherAction) }}
pero obtengo este error:
Una clave hash debe ser una cadena entre comillas, un número, un nombre o una expresión entre paréntesis
Sé que es viejo y respondí, pero con Symfony 3 & twig puedes:
{{ app.request.getSchemeAndHttpHost() }}
/* will match even port :) i.e.
* http://localhost:8000
* http://localhost
* http://example.com
*/
que es extremadamente útil: D
Tienes dos formas de hacer lo mismo. Por lo general, puede usar url()
o la ruta dentro de la función absolute_url como absoulute_url (path (...)) . Considera lo siguiente:
// 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
Generalmente desde Symfony 2.7 puede usar absolute_url () con los asertos y la ruta relativa también (relativa a la carpeta web / root). Así es como podría usarlos para establecer la ruta absoluta de la imagen en el paquete y en la carpeta web principal:
[app / src / UserBundle / Resources / public / 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
[web / css / img / some.jpg]
<img src="{{ absolute_url(''css/img/some.jpg'') }}" />
Esto es lo que Symfony recomienda usar al representar la vista de correo electrónico. http://symfony.com/doc/current/email.html