Silex app->redirect nicht mit Routen
Lasse meine Applikation auf localhost, der Pfad ist: localhost/silex/web/index.php
definierte Routen wie in den folgenden code, würde ich erwarten, dass der Besuch localhost/silex/web/index.php/redirect
leitet mir localhost/silex/web/index.php/foo
und zeigt 'foo'. Stattdessen leitet es mich zu localhost/foo
.
Ich bin neu Silex und vielleicht habe ich es falsch verstanden. Könnte mir jemand erklären, wo ist das problem? Ist es korrekt Verhalten, und es sollte eine Weiterleitung für absolute Pfade? Danke.
<?php
require_once __DIR__.'/../vendor/autoload.php';
use Symfony\Component\HttpFoundation\Response;
$app = new Silex\Application();
$app['debug'] = true;
$app->get('/foo', function() {
return new Response('foo');
});
$app->get('/redirect', function() use ($app) {
return $app->redirect('/foo');
});
$app->run();
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den
redirect
url erwartet eine url-Umleitung zu, keine in-app-route. Versuchen Sie es auf diese Weise:Für interne Umleitungen, die nicht zu einer änderung des angeforderten URL, Sie können auch einen sub-Anfrage:
Siehe auch Die sub-Anfragen.
Bis zu
"silex/silex": ">= 2.0"
eine native Eigenschaft ermöglichen Sie generieren eine URL basierend auf den Namen der route ein.Können Sie ersetzen :
Durch :
Dann verwenden, um umzuleiten :
Andere Möglichkeit ist das erstellen einer benutzerdefinierte Eigenschaft, die direkt umleiten mit einem route-name :
Fügen Sie die Eigenschaft, Ihre Anwendung definition :
Dann verwenden Sie es, wo immer Sie es brauchen :