J'ai plusieurs URL qui se présentent comme suit:
{{domainID}}/action/{{userId}}/anotherAction
Et cette dernière URL pointe vers:
http://localhost/viewA/{{domainID}}/action/{{userId}}/anotherAction
Cependant, si j'essaie de charger viewA
depuis viewB
via un iframe, le lien à l'intérieur de viewA
au lieu de pointer vers:
http://localhost/viewA/{{domainID}}/action/{{userId}}/anotherAction
il indiquera:
http://localhost/viewB/{{domainID}}/action/{{userId}}/anotherAction
et l'utilisateur se retrouvera dans une page 404 s'il suit cette dernière.
Ma question est:
Existe-t-il de toute façon pour obtenir le chemin absolu d'une URL construite de cette façon en brindille?
MODIFIER
La définition de l'itinéraire est:
@Route("/domain/details/{domainId}", name="domain_detailed_view")
J'ai essayé d'obtenir le chemin absolu de cette façon:
{{ url({{domainID}}/action/{{userId}}/anotherAction) }}
mais je reçois cette erreur:
Une clé de hachage doit être une chaîne entre guillemets, un nombre, un nom ou une expression entre parenthèses
Les fonctions url
ou path
prennent le nom de la route, pas le chemin. Vous pouvez lui donner un tableau associatif comme deuxième argument facultatif si l'itinéraire nécessite des paramètres.
Par exemple:
{{ url('domain_detailed_view', { 'domainId': domainId, 'userId': userId }) }}
Je sais que c'est vieux et a répondu, mais avec symfony 3 & twig you can do:
{{ app.request.getSchemeAndHttpHost() }}
/* will match even port :) i.e.
* http://localhost:8000
* http://localhost
* http://example.com
*/
ce qui est extrêmement utile: D
Vous avez deux façons de faire la même chose. En général, vous pouvez utiliser url()
ou un chemin à l'intérieur de la fonction absolue_url comme ceci absoulute_url (chemin (...)) . Considérer ce qui suit:
// 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
En général, depuis Symfony 2.7, vous pouvez également utiliser absolute_url () avec les assertions et le chemin relatif (par rapport au dossier web/racine). Voici comment vous pouvez les utiliser pour définir le chemin absolu de l'image dans le bundle et dans le dossier 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') }}" />
C'est ce que symfony recommande d'utiliser lors du rendu de la vue e-mail. http://symfony.com/doc/current/email.html