2016-12-26 6 views
0

Ich beginne mit Symfony und ich kann 'durchaus die richtigen Begriffe finden, um die Frage zu stellen, damit die Lösung wirklich einfach oder ein Duplikat sein kann, also bitte mit mir.redirectToRoute lädt die Seite nicht, aber die Eingabe erfolgt

Wenn ich die URL im Browser wie http://localhost:8000/foo/fooPage/ eingeben, funktioniert es.

Aber wenn ich versuche, dies nach einer Formular-Vorlage zu tun:

return $this->redirectToRoute('/foo/fooPage/'); 

Ich bekomme diese Fehlermeldung: Kann nicht eine URL für die benannte Route „/ foo/fooPage /“ als solche Route existiert nicht generieren .

Also, was ist die richtige Art der Umleitung?

+1

Veröffentlichen Sie Ihr Routing und Ihre Controller-Aktion – Preciel

+1

@ TRiNE Antwort ist richtig, das ist die richtige Methode zum Redirect. Sie möchten wahrscheinlich Ihre Route herausfinden. Verwenden Sie: 'php bin/console debug: router', um alle Ihre Routen anzuzeigen. Der 'Name' ist normalerweise das, was Sie in Ihrer Weiterleitung verwenden. –

+0

Danke @AlvinBunk Dein Kommentar war eigentlich der Hinweis a benötigt. – Eduardo

Antwort

0

Sie wahrscheinlich Ihre Route, um herauszufinden, wollen erfolgen.

Verwendung:

php bin/console debug:router 

alle Ihre Routen zu zeigen. Der Name ist normalerweise, was Sie in Ihrer Weiterleitung verwenden.

1

1. Identifizieren Sie, was Routennamen

Annotations ist:

/** 
* @Route("/some", name="some_route") 
*/ 
public function someAction() 

YAML:

someRoute: 
    path:  /some 
    defaults: { _controller: AppBundle:Default:some} 

Wie oben config /some ist Route Weg. some_route ist Route Name.

2. Überprüfen Sie Ihre Routen

php bin/console debug:router 

ODER

php app/console debug:router 

wird Routendetails wie folgt anzeigen.

route_name    METHOD  /path 

3. Redirect kann als Rückkehr aus dem Controller

// redirect to the "some_route" route. 
return $this->redirectToRoute('some_route'); 

// do a permanent - 301 redirect 
return $this->redirectToRoute('some_route', array(), 301); 

// redirect to a route with parameters 
return $this->redirectToRoute('some_route', array('param1' => 'hi')); 

// get route path using route name 
$url = $this->generateUrl('some_route'); 

// redirect using route path 
return $this->redirect($url); 

// relative route 
return $this->redirect('/path'); 

// absolute route 
return $this->redirect('http://example.com'); 
+1

Danke, der Name war in der Tat etwas anderes, der php bin/console debug: router zeigte: app_foo_page – Eduardo

Verwandte Themen