Named Routes in Laravel 5

Named Routes in Laravel 5 bieten eine hervorragende Möglichkeit, Ordnung in deine Routen zu bringen. Das Problem: man ändert ein oder mehrere Routen in seiner routes.php und muss daraufhin seine gesamten Controller und Templates nach den geänderten Routen durchsuchen und die Routen anpassen.

Abhilfe schaffen Named Routes.

Laravel 5 sammelt alle Systemrouten in einer Datei, der app/Http/routes.php. Hier werden wir die Named Routes definieren. Anschließend zeige ich dir, wie man in einem Controller oder einer Blade-Datei auf solch eine Named Route zugreift und gegebenenfalls Parameter an diese übergibt.

Ablauf

  • Routen in der routes.php anlegen
  • Zugriff auf Named Routes in einem Controller
  • Zugriff auf Named Routes in einer Template-Datei

Named Routes anlegen

Es gibt mehrere Möglichkeiten, Named Routes anzulegen. Dabei muss man unterscheiden, ob man eine einzelne Route betrachtet oder einer ganze Route Group. Denn auch Route Groups kann man Namen zuordnen. Im Folgenden sind die verschiedenen Varianten erklärt

Route Names für einzelne Routen

Der Route wird ein Array übergeben, welches unter anderem den Namen der Route beinhaltet:


Auch in der zweiten Variante wird der Route ein Array übergeben. Allerdings wird hier zusätzlich auf einen Controller verwiesen, anstatt direkt eine Funktion auszuführen:


Die letzte Möglichkeit zeigt ein Verkettung. Hierbei wird zuerst die Route definiert und dann auf den entsprechenden Controller verwiesen. Anschließend wird der Name der Route hinten angehangen:

Route Names für Route Groups

Im folgenden erstellen wir eine Route-Gruppe, welcher ebenfalls ein Name zugeordnet wird. Anschließend erstellen wir in der Gruppe eine Named Route:

Zugriff auf Named Routes in einem Controller

Oftmals ist es nötig, dass man aus einem Controller heraus auf eine Route weiterleitet. Das folgende Beispiel zeigt zum einen die alte Variante und zum anderen die neue Variante mit Named Routes:

Mit der alten Methode müssten wir jedes mal, wenn wir die Route ändern, auch diesen Controller ändern. Mit Named Routes gehört das der Vergangenheit an.

Zugriff auf Named Routes in einer Blade-Template-Datei

Wie du sicherlich weißt, kann man sich in einem Blade-Template mit url('/pfad/zur/seite') eine Url generieren lassen. Auch hier gilt, dass man mit der bisherigen Methode nach jeder Änderung an der routes.php die entsprechenden Template-Dateien raussuchen, durchsuchen und ändern müsste. Dies ersparen wir uns mit der neuen Schreibweise:


Das war es auch schon. Wenn du Anregungen oder Anmerkungen hast, freue ich mich über ein Kommentar oder eine Nachricht von dir.

2 Kommentare


  1. Moin,

    gibt es noch weitere Tutorials von dir oder ist die Seite eingeschlafen. Die deutsche Laravel Community braucht mehr Blogger. Wie kann es sein, dass eines der beliebtesten PHP Frameworks so wenig Blogger anzieht?

    Viele Grüße
    Dirk

    Antworten

    1. Hey Dirk,

      in letzter Zeit ist die Seite aus diversen Gründen hinten angestellt worden. Ich will zukünftig aber wieder mehr schreiben. Wie du schon sagst, die deutsche Community ist recht klein/tut zu wenig.

      Du darfst dich natürlich gerne beteiligen 😉

      Antworten

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.