2017-01-02 2 views
13

Ich benutze derzeit Symfony Kernel und Routing in einem benutzerdefinierten Rahmen und ich habe auf ein seltsames Problem gestoßen. Unter Verwendung der gleichen Route:Symfony Url Generator produziert verschiedene URLs von der gleichen Route vor und nach der Anmeldung

$collection->add('article_edit', new Route('/articles/edit/{alias}', array(
    '_controller' => 'AppBundle:Article:edit' 
))); 

Mit dieser URL Generator Code

$url = $this->generateUrl('article_edit',array('alias' => 'test')); 

Vor Login erzeugt die URL Generator

/articles/edit/test

Und Nach dem Login produziert es

http://localhost/testsite/articles/edit/test

Ohne etwas geändert wird, was hier passiert werden kann, da ich konsequent das gleiche Ergebnis will.

Dank

+0

Der Unterschied, den ich sehe, ist, dass die URL nach dem Login auf 'ABSOLUTE_URL' wechselt. Der Standardwert ist jedoch "ABSOLUTE_PATH". Versuchen Sie '$ url = $ this-> generateUrl ('article_edit', array ('alias' => 'test'), 0);' Sehen Sie, was es für Sie selbst nach der Anmeldung zurückgibt. – Jeet

+0

@Jeet - Auch wenn ich den URL-Typ auf ABSOLUTE_PATH ändere, erzeugt die URL immer noch andere URLs. Tatsächlich ändert es sich auch, wenn ich ein Formular einsende, d. H. $ _POST-Variablen verwende. –

+0

Bitte senden Sie die Header, die Sie vor und nach dem Login senden. –

Antwort

0

ich, dass "/ articles/edit/test" und "http://localhost/testsite/articles/edit/test" ist die gleiche URL nur mit Unterschied von Website-URL in ihnen sehen kann.

Wenn Sie Ihre "generateUrl" -Methode wie folgt verwenden, wird immer dieselbe URL generiert. Es sollte "http://localhost/testsite/articles/edit/test" immer

$url = $this->generateUrl('article_edit',array('alias' => 'test', UrlGeneratorInterface::ABSOLUTE_URL)); 

Auch vergessen Sie nicht folgende Klasse verwenden im Namensraum Abschnitt

use Symfony\Component\Routing\Generator\UrlGeneratorInterface; 
0

Versuchen Sie, Ihr Gastgeber in app/config/services.yml

parameters: 
    router.request_context.host: www.yourdomain.com 
    router.request_context.scheme: http 
    router.request_context.base_url: /your/path 

Weitere Informationen erzeugen: https://symfony.com/doc/3.3/console/request_context.html

Verwandte Themen