Die Anpassung einer URL zu einer route in Symfony
Wir haben die Dateien, die hinter der Authentifizierung, und ich möchte verschiedene Dinge für die post-Authentifizierung umleiten, wenn der Benutzer in die Anwendung über eine URL von einer Datei im Vergleich zu einer URL eine HTML-Ressource.
Ich habe eine URL: https://subdomain.domain.com/resource/45/identifiers/567/here/11abdf51e3d7-some%20file%20name.png/download
. Ich möchte die route name für diese URL.
app/console router:debug
Ausgänge: _route_name GET ANY subdomain.domain.{tld} /resource/{id2}/identifiers/{id2}/here/{id3}/download
.
Symfony hat eine Routing-Komponente (http://symfony.com/doc/current/book/routing.html), und ich bin versucht zu rufen match()
auf eine Instanz von Symfony\Bundle\FrameworkBundle\Routing\Router
wie von Symfony IOC. Ich habe versucht mit mit der Domäne und ohne die Domäne, aber Sie beide schaffen eine MethodNotAllowed
Ausnahme, weil die route nicht gefunden werden kann. Wie kann ich mit dieser URL zu einer route?
InformationsquelleAutor sennett | 2014-11-16
Du musst angemeldet sein, um einen Kommentar abzugeben.
Laut diese, Symfony verwendet aktuellen request die HTTP-Methode während matching. Ich denke mal dein controller dient der POST-Anforderung, während Ihr die download-links sind ERHALTEN.
InformationsquelleAutor kozlice
Können Sie etwas tun, wie diese Tonne Holen Sie sich die route name:
EDIT:
Ich habe vergessen zu erklären, was ich Tat. Also im Grunde sind Sie immer die url der Seite (
$referer
), dann nehmen heraus Ihre website die Basis-url mitstr_replace
und dann versucht, den restlichen Teil des Weges mit einem know-route-Muster mit Hilfe der route-matcher.EDIT2:
Natürlich müssen Sie diese im inneren controller, wenn Sie möchten, nutzen zu können
$this->get(...)
InformationsquelleAutor Moucheg
Namens der route ist in der
_route_name
Attribut desRequest
Objekt:$request->attributes->get('_route_name')
.InformationsquelleAutor Wouter J