2015-05-03 9 views
5

Ich bin ein Laravel 5 App zu entwickeln, ich habe diesen WegRedirect :: Route mit dem Parameter in URL in Laravel 5

Route::get('states/{id}/regions', ['as' => 'regions', 'uses' => '[email protected]']);

In meinem Controller, nachdem ich einen Post Anruf richtig machen, ich will umleiten zu dieser Ansicht, mit diesem Befehl:

return \Redirect::route('regions')->with('message', 'State saved correctly!!!'); 

Das Problem ist, dass ich weiß nicht, wie kann ich {id} Parameter übergeben, die in meiner URL sein sollte.

Vielen Dank.

Antwort

7

Sie können die Routenparameter als zweites Argument an route() passieren:

return \Redirect::route('regions', [$id])->with('message', 'State saved correctly!!!'); 

Wenn es nur eine ist man nicht auch als Array schreiben müssen:

return \Redirect::route('regions', $id)->with('message', 'State saved correctly!!!'); 

Falls Sie Ihre Route hat mehr Parameter, oder wenn es nur einen hat, aber Sie wollen klar angeben, welcher Parameter einen Wert hat (zur besseren Lesbarkeit), können Sie dies immer tun:

return \Redirect::route('regions', ['id'=>$id,'OTHER_PARAM'=>'XXX',...])->with('message', 'State saved correctly!!!'); 
+0

Wie Sie sehen können, hat meine Redirect :: route bereits einen 'message' Parameter. Wie kann ich den Parameter $ id hinzufügen, der in URL platziert werden soll, und auch den Parameter 'message'? – Bellots

+1

@Bellots Im gezeigten Beispiel sehen Sie, dass die $ id als zweiter Parameter der 'route()' Methode übergeben wird. Dieser zweite Parameter wird zum Erstellen der Route verwendet. Alle "Parameter", die Sie mit der 'with()' -Methode hinzufügen, sind eigentlich nur Daten, die in die Session geflasht werden, damit Sie auf Ihre Weiterleitung zugreifen können. Also, Ihre vollständige Zeile wäre: 'return \ Redirect :: route ('regions', [$ id]) -> mit ('message', 'Status korrekt gespeichert !!!');' – patricus

+2

versuchen Sie diese 'return redirect ('states /'.$ id.'/regiones ') -> mit ([' message '=>' State richtig gespeichert !!! ']); ' –

0

Sie konnte es immer noch so:

return redirect()->route('regions', $id)->with('message', 'State saved correctly!!!'); 

In Fällen, in denen Sie mehrere Parameter haben, können Sie die Parameter als Array übergeben werden können, zum Beispiel, sagen Sie in Ihnen die Hauptstadt einer bestimmten Region passieren hatte Route, könnte Ihre Route wie folgt aussehen:

Route::get('states/{id}/regions/{capital}', ['as' => 'regions', 'uses' => '[email protected]']); 

und Sie können dann umleiten mit:

return redirect()->route('regions', ['id' = $id, 'capital' => $capital])->with('message', 'State saved correctly!!!'); 
0

können Sie übergeben {id} Parameter mit Umleitung wie die

return \Redirect::route('regions', [$id])->with('message', 'State saved correctly!!!'); 
0

Es gibt verschiedene Art und Weise diese URL in Laravel zu umleiten:
1. URL mit Funktion globalen Redirect Helfer
return redirect('states/'.$id.'/regions')->with('message', 'State saved correctly!!!');
2. Verwenden Route namens
return redirect()->route('regions', ['id' => $id])->with('message', 'State saved correctly!!!');
3. Verwenden von Controller-Aktion
return redirect()->action('[email protected]', ['id' => $id])->with('message', 'State saved correctly!!!');