{"id":57115,"date":"2022-12-16T14:12:50","date_gmt":"2022-12-16T13:12:50","guid":{"rendered":"https:\/\/kinsta.com\/de\/?p=57115&#038;preview=true&#038;preview_id=57115"},"modified":"2023-08-29T06:34:12","modified_gmt":"2023-08-29T05:34:12","slug":"laravel-routen","status":"publish","type":"post","link":"https:\/\/kinsta.com\/de\/blog\/laravel-routen\/","title":{"rendered":"Laravel-Routen beherrschen"},"content":{"rendered":"<p>Wenn es um das Backend geht, sto\u00dfen Entwickler irgendwann auf Routen. Routen k\u00f6nnen als das R\u00fcckgrat des Backends betrachtet werden, da jede Anfrage, die der Server erh\u00e4lt, \u00fcber eine Routing-Liste an einen Controller weitergeleitet wird, der die Anfragen den Controllern oder Aktionen zuordnet.<\/p>\n<p><a href=\"https:\/\/kinsta.com\/de\/blog\/was-ist-laravel\/\">Laravel<\/a> verbirgt viele Implementierungsdetails f\u00fcr uns und kommt mit einer Menge syntaktischem Zuckerschlecken, um sowohl neuen als auch erfahrenen Entwicklern bei der Entwicklung ihrer Webanwendungen zu helfen.<\/p>\n<p>Schauen wir uns genauer an, wie man Routen in Laravel verwaltet.<div><\/div><kinsta-auto-toc heading=\"Table of Contents\" exclude=\"last\" list-style=\"arrow\" selector=\"h2\" count-number=\"-1\"><\/kinsta-auto-toc><\/p>\n<h2>Backend-Routing und Cross-Site-Scripting in Laravel<\/h2>\n<p>Auf einem Server gibt es sowohl \u00f6ffentliche als auch private Routen. \u00d6ffentliche Routen k\u00f6nnen Anlass zur Sorge geben, da sie die M\u00f6glichkeit f\u00fcr Cross-Site-Scripting (XSS) bieten, eine Art von <a href=\"https:\/\/kinsta.com\/de\/blog\/sql-injection\/\">Injektionsangriff<\/a>, der dich und deine Nutzer\/innen <a href=\"https:\/\/kinsta.com\/de\/blog\/arten-von-malware\/\">f\u00fcr b\u00f6swillige Akteure angreifbar<\/a> machen kann.<\/p>\n<p>Das Problem besteht darin, dass ein Nutzer von einer Route, die kein Sitzungs-Token erfordert, auf eine Route umgeleitet werden kann, die ein solches erfordert &#8211; und er auch ohne das Token Zugang hat.<\/p>\n\n<p>Die einfachste M\u00f6glichkeit, dieses Problem zu l\u00f6sen, besteht darin, einen neuen HTTP-Header zu erzwingen, der der Route &#8222;referrer&#8220; hinzuf\u00fcgt, um dieses Szenario zu entsch\u00e4rfen:<\/p>\n<pre><code class=\"language-php\">'main' =&gt; [\n  'path' =&gt; '\/main',\n  'referrer' =&gt; 'required,refresh-empty',\n  'target' =&gt; ControllerDashboardController::class . '::mainAction'\n]<\/code><\/pre>\n<h2>Laravel Basic Routing<\/h2>\n<p>In <a href=\"https:\/\/kinsta.com\/de\/blog\/laravel-9\/\">Laravel<\/a> erm\u00f6glichen es Routen, die entsprechende Anfrage an den gew\u00fcnschten Controller weiterzuleiten. Die grundlegendste Laravel-Route akzeptiert einen Uniform Asset Identifier (deinen Routenpfad) und eine Closure, die sowohl eine Funktion als auch eine Klasse sein kann.<\/p>\n<p>In Laravel werden die Routen in den Dateien <strong>web.php<\/strong> und <strong>api.php<\/strong> erstellt. Laravel wird standardm\u00e4\u00dfig mit zwei Routen ausgeliefert: eine f\u00fcr die WEB und eine f\u00fcr die API.<\/p>\n<p>Diese Routen befinden sich im Ordner <strong>routes\/<\/strong>, aber sie werden in der Datei <strong>Providers\/RouteServiceProvider.php<\/strong> geladen.<\/p>\n<figure style=\"width: 875px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/kinsta.com\/wp-content\/uploads\/2022\/10\/laravel-route-provider-default.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2022\/10\/laravel-route-provider-default.png\" alt=\"Eine Befehlszeile, die den Standardstatus des Laravel-Routen-Dienstanbieters anzeigt\" width=\"875\" height=\"628\"><\/a><figcaption class=\"wp-caption-text\">Standardzustand des Routen-Service-Providers von Laravel<\/figcaption><\/figure>\n<p>Stattdessen k\u00f6nnen wir die Routen auch direkt in <strong>RouteServiceProvider.php<\/strong> laden und den Ordner <strong>routes\/<\/strong> ganz \u00fcberspringen.<\/p>\n<figure style=\"width: 875px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/kinsta.com\/wp-content\/uploads\/2022\/10\/loading-laravel-routes-directly.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2022\/10\/loading-laravel-routes-directly.png\" alt=\"Eine Befehlszeile, die den Standardstatus des Laravel-Routen-Dienstanbieters anzeigt\" width=\"875\" height=\"413\"><\/a><figcaption class=\"wp-caption-text\">Laravel-Routen direkt in den Provider laden<\/figcaption><\/figure>\n<h3>Umleitungen<\/h3>\n<p>Wenn wir eine Route definieren, wollen wir den Nutzer, der auf sie zugreift, in der Regel umleiten, und die Gr\u00fcnde daf\u00fcr sind vielf\u00e4ltig. Das kann daran liegen, dass es sich um eine veraltete Route handelt und wir das Backend oder den Server ge\u00e4ndert haben, oder weil wir eine <a href=\"https:\/\/kinsta.com\/de\/docs\/benutzereinstellungen\/einloggen\/#enable-twofactor-authentication-2fa\">Zwei-Faktor-Authentifizierung (2FA)<\/a> installieren wollen usw.<\/p>\n<p>Laravel bietet eine einfache M\u00f6glichkeit, dies zu tun. Dank der Einfachheit des Frameworks k\u00f6nnen wir die Redirect-Methode der Route-Fassade verwenden, die die Eingangsroute und die Route, zu der umgeleitet werden soll, akzeptiert.<\/p>\n<p>Optional k\u00f6nnen wir den Statuscode f\u00fcr die Weiterleitung als dritten Parameter angeben. Die Methode <code>permanentRedirect<\/code> tut dasselbe wie die Methode <code>redirect<\/code>, nur dass sie immer einen <a href=\"https:\/\/kinsta.com\/de\/blog\/http-statuscodes\/\">301-Statuscode<\/a> zur\u00fcckgibt:<\/p>\n<pre><code class=\"language-php\">\/\/ Simple redirect\nRoute::redirect(\"\/class\", \"\/myClass\");\n\n\/\/ Redirect with custom status\nRoute::redirect(\"\/home\", \"\/office\", 305);\n\n\/\/ Route redirect with 301 status code\nRoute::permanentRedirect(\"\/home\", \"office\");<\/code><\/pre>\n<p>Innerhalb der Redirect-Routen d\u00fcrfen wir die Schl\u00fcsselw\u00f6rter &#8222;destination&#8220; und &#8222;status&#8220; nicht als Parameter verwenden, da sie von Laravel reserviert sind.<\/p>\n<pre><code class=\"language-php\">\/\/ Illegal to use\nRoute::redirect(\"\/home\", \"\/office\/{status}\");<\/code><\/pre>\n<h3>Views<\/h3>\n<p>Views sind die .<strong>blade.php<\/strong>-Dateien, die wir f\u00fcr die Darstellung des Frontends unserer Laravel-Anwendung verwenden. Sie verwenden die Blade-Templating-Engine und sind die Standardmethode, um eine Full-Stack-Anwendung nur mit Laravel zu erstellen.<\/p>\n<p>Wenn wir wollen, dass unsere Route eine Ansicht zur\u00fcckgibt, k\u00f6nnen wir einfach die Methode view der Route-Fassade verwenden. Sie akzeptiert einen Routenparameter, einen View-Namen und ein optionales Array von Werten, die an den View \u00fcbergeben werden.<\/p>\n<pre><code class=\"language-php\">\/\/ When the user accesses my-domain.com\/homepage\n\/\/ the homepage.blade.php file will be rendered\nRoute::view(\"\/homepage\", \"homepage\");<\/code><\/pre>\n<p>Nehmen wir an, unsere View will &#8222;Hallo, <code>{name}<\/code>&#8220; sagen, indem sie ein optionales Array mit diesem Parameter \u00fcbergibt. Mit dem folgenden Code k\u00f6nnen wir genau das tun (wenn der fehlende Parameter in der View erforderlich ist, wird die Anfrage fehlschlagen und einen Fehler ausl\u00f6sen):<\/p>\n<pre><code class=\"language-php\">Route::view('\/homepage', 'homepage', ['name' =&gt; \"Kinsta\"]);<\/code><\/pre>\n<h3>Routenliste<\/h3>\n<p>Wenn deine Anwendung gr\u00f6\u00dfer wird, steigt auch die Anzahl der Anfragen, die weitergeleitet werden m\u00fcssen. Und mit einer gro\u00dfen Menge an Informationen kann auch gro\u00dfe Verwirrung entstehen.<\/p>\n<p>Hier kann die <code>artisan route:list command<\/code> helfen. Sie bietet einen \u00dcberblick \u00fcber alle Routen, die in der Anwendung definiert sind, sowie \u00fcber die Middlewares und Controller.<\/p>\n<pre><code class=\"language-php\">php artisan route:list<\/code><\/pre>\n<p>Es wird eine Liste aller Routen ohne die Middlewares angezeigt. Hierf\u00fcr m\u00fcssen wir das <code>-v<\/code> Flag verwenden:<\/p>\n<pre><code class=\"language-php\"><code>php artisan route:list -v<\/code><\/code><\/pre>\n<p>Wenn du ein dom\u00e4nengesteuertes Design verwendest, bei dem deine Routen bestimmte Namen in ihren Pfaden haben, kannst du die Filterfunktionen dieses Befehls wie folgt nutzen:<\/p>\n<pre><code class=\"language-php\">php artisan route:list \u2013path=api\/account<\/code><\/pre>\n<p>So werden nur die Routen angezeigt, die mit <strong>api\/account<\/strong> beginnen.<\/p>\n<p>Andererseits k\u00f6nnen wir Laravel mit den Optionen <code>\u2013except-vendor<\/code> oder <code>\u2013only-vendor<\/code> anweisen, von Dritten definierte Routen auszuschlie\u00dfen oder einzuschlie\u00dfen.<\/p>\n<h2>Routenparameter<\/h2>\n<p>Manchmal ist es notwendig, Teile der URI mit der Route zu erfassen, z. B. eine Benutzer-ID oder ein Token. Dies k\u00f6nnen wir tun, indem wir einen Routenparameter definieren, der immer in geschweifte Klammern (<code>{}<\/code>) eingeschlossen ist und nur aus alphabetischen Zeichen bestehen sollte.<\/p>\n<p>Wenn unsere Routen Abh\u00e4ngigkeiten in ihren Callbacks haben, wird der Laravel Service Container diese automatisch einbinden:<\/p>\n<pre><code class=\"language-php\">use IlluminateHttpRequest;\nuse Controllers\/DashboardController;\nRoute::post('\/dashboard\/{id}, function (Request $request, string $id) {\n  return 'User:' . $id;\n}\nRoute::get('\/dashboard\/{id}, DashboardController.php);<\/code><\/pre>\n<h3>Erforderliche Parameter<\/h3>\n<p>Laravels erforderliche Parameter sind Parameter in Routen, die wir bei einem Aufruf nicht auslassen d\u00fcrfen. Andernfalls wird ein Fehler ausgel\u00f6st:<\/p>\n<pre><code class=\"language-php\">Route::post(\"\/gdpr\/{userId}\", GetGdprDataController.php\");<\/code><\/pre>\n<p>In <strong>GetGdprDataController.php<\/strong> haben wir nun direkten Zugriff auf den Parameter<strong> $userId<\/strong>.<\/p>\n<pre><code class=\"language-php\">public function __invoke(int $userId) {\n  \/\/ Use the userId that we received\u2026\n}<\/code><\/pre>\n<p>Eine Route kann eine beliebige Anzahl von Parametern enthalten. Sie werden in der Reihenfolge, in der sie aufgelistet sind, in die Callbacks\/Controller der Route injiziert:<\/p>\n<pre><code class=\"language-php\"> \/\/ api.php\nRoute::post('\/gdpr\/{userId}\/{userName}\/{userAge}', GetGdprDataController.php);\n\/\/ GetGdprDataController.php\npublic function __invoke(int $userId, string $userName, int $userAge) {\n  \/\/ Use the parameters\u2026\n}<\/code><\/pre>\n<h3>Optionale Parameter<\/h3>\n<p>Wenn wir in einer Route etwas ver\u00e4ndern wollen, in der nur ein Parameter vorhanden ist und sonst nichts, ohne dass die gesamte Anwendung betroffen ist, k\u00f6nnen wir einen optionalen Parameter hinzuf\u00fcgen. Diese optionalen Parameter sind an dem angeh\u00e4ngten <code>?<\/code> zu erkennen:<\/p>\n<pre><code class=\"language-php\"> Route::get('\/user\/{age?}', function (int $age = null) {\n  if (!$age) Log::info(\"User doesn't have age set\");\n  else Log::info(\"User's age is \" . $age);\n}\nRoute::get('\/user\/{name?}', function (int $name = \"John Doe\") {\n  Log::info(\"User's name is \" . $name);\n}<\/code><\/pre>\n<h3>Route Wildcard<\/h3>\n<p><a href=\"https:\/\/kinsta.com\/de\/blog\/laravel-9\/\">Laravel<\/a> bietet uns eine M\u00f6glichkeit, zu filtern, wie unsere optionalen oder erforderlichen Parameter aussehen sollen.<\/p>\n<p>Nehmen wir an, wir wollen einen String mit einer Benutzer-ID. Wir k\u00f6nnen sie auf der Routenebene mit der Methode <code>where<\/code> validieren.<\/p>\n<p>Die Methode <code>where<\/code> akzeptiert den Namen des Parameters und die Regex-Regel, die auf die Validierung angewendet werden soll. Standardm\u00e4\u00dfig nimmt sie den ersten Parameter, aber wenn wir viele haben, k\u00f6nnen wir ein Array mit dem Namen des Parameters als Schl\u00fcssel und der Regel als Wert \u00fcbergeben und Laravel wird sie alle f\u00fcr uns analysieren:<\/p>\n<pre><code class=\"language-php\">Route::get('\/user\/{age}', function (int $age) {\n  \/\/\n}-&gt;where('age', '[0-9]+');\nRoute::get('\/user\/{age}', function (int $age) {\n  \/\/\n}-&gt;where('[0-9]+');\nRoute::get('\/user\/{age}\/{name}', function (int $age, string $name) {\n  \/\/\n}-&gt;where(['age' =&gt; '[0-9]+', 'name' =&gt; '[a-z][A-z]+');<\/code><\/pre>\n<p>Wir k\u00f6nnen noch einen Schritt weiter gehen und die Validierung auf alle Routen in unserer Anwendung anwenden, indem wir die Methode <code>pattern<\/code> in der <code>Route<\/code> -Fassade verwenden:<\/p>\n<pre><code class=\"language-php\"> Route::pattern('id', '[0-9]+');<\/code><\/pre>\n<p>Damit wird jeder <code>id<\/code> Parameter mit diesem Regex-Ausdruck validiert. Und wenn wir ihn einmal definiert haben, wird er automatisch auf alle Routen angewendet, die diesen Parameternamen verwenden.<\/p>\n<p>Wie wir sehen k\u00f6nnen, verwendet Laravel das Zeichen <code>\/<\/code> als Trennzeichen im Pfad. Wenn wir es im Pfad verwenden wollen, m\u00fcssen wir es mit einer <code>where<\/code> Regex explizit als Teil unseres Platzhalters zulassen.<\/p>\n<pre><code class=\"language-php\"> Route::get('\/find\/{query}', function ($query) {\n  \/\/\n})-&gt;where('query', , '.*');<\/code><\/pre>\n<p>Der einzige Nachteil ist, dass es nur im letzten Routensegment unterst\u00fctzt wird.<\/p>\n<h2>Benannte Routen<\/h2>\n<p>Wie der Name schon sagt, k\u00f6nnen wir Routen benennen, um <a href=\"https:\/\/kinsta.com\/de\/blog\/was-ist-eine-url\/\">URLs<\/a> oder Weiterleitungen f\u00fcr bestimmte Routen zu erstellen.<\/p>\n<h3>Wie man benannte Routen erstellt<\/h3>\n<p>Eine einfache M\u00f6glichkeit, eine benannte Route zu erstellen, bietet die <code>name<\/code> Methode, die auf der <code>Route<\/code> Fassade verkettet ist. Der Name jeder Route sollte eindeutig sein:<\/p>\n<pre><code class=\"language-php\"> Route::get('\/', function () {\n})-&gt;name(\"homepage\");<\/code><\/pre>\n<h2>Routengruppen<\/h2>\n<p>Routengruppen erm\u00f6glichen es dir, Routenattribute wie Middlewares f\u00fcr eine gro\u00dfe Anzahl von Routen gemeinsam zu nutzen, ohne sie f\u00fcr jede einzelne Route neu definieren zu m\u00fcssen.<\/p>\n<h3>Middleware<\/h3>\n<p>Wenn wir allen Routen eine Middleware zuweisen, k\u00f6nnen wir sie in einer Gruppe zusammenfassen, indem wir zun\u00e4chst die Methode <code>group<\/code> verwenden. Dabei ist zu beachten, dass die Middlewares in der Reihenfolge ausgef\u00fchrt werden, in der sie auf die Gruppe angewendet werden:<\/p>\n<pre><code class=\"language-php\"> Route:middleware(['AuthMiddleware', 'SessionMiddleware'])-&gt;group(function () {\n  Route::get('\/', function() {} );\n  Route::post('\/upload-picture', function () {} );\n});<\/code><\/pre>\n<h3>Controller<\/h3>\n<p>Wenn eine Gruppe denselben Controller verwendet, k\u00f6nnen wir mit der Methode <code>controller<\/code> den gemeinsamen Controller f\u00fcr alle Routen innerhalb dieser Gruppe festlegen. Jetzt m\u00fcssen wir die Methode angeben, die die Route aufrufen soll.<\/p>\n<pre><code class=\"language-php\"> Route::controller(UserController::class)-&gt;group(function () {\n  Route::get('\/orders\/{userId}', 'getOrders');\n  Route::post('\/order\/{id}', 'postOrder');\n});<\/code><\/pre>\n<h3>Subdomain-Routing<\/h3>\n<p><a href=\"https:\/\/kinsta.com\/de\/blog\/wordpress-subdomain\/\">Ein Subdomain-Name<\/a> ist eine zus\u00e4tzliche Information, die an den Anfang des Domain-Namens einer Website angeh\u00e4ngt wird. Damit k\u00f6nnen Websites ihre Inhalte f\u00fcr bestimmte Funktionen wie Online-Shops, Blogs, Pr\u00e4sentationen usw. vom Rest der Website trennen und organisieren.<\/p>\n<p>Unsere Routen k\u00f6nnen f\u00fcr die Weiterleitung von Subdomains verwendet werden. Wir k\u00f6nnen die Domain und einen Teil der Subdomain zur Verwendung in unserem Controller und unserer Route abfangen. Mit Hilfe der Methode <code>domain<\/code> auf der <code>Route<\/code> Fassade k\u00f6nnen wir unsere Routen unter einer einzigen Domain zusammenfassen:<\/p>\n<pre><code class=\"language-php\"> Route::domain('{store}.enterprise.com')-&gt;group(function() {\n  Route::get('order\/{id}', function (Account $account, string $id) {\n    \/\/ Your Code\n  }\n});<\/code><\/pre>\n<h3>Pr\u00e4fixe und Namenspr\u00e4fixe<\/h3>\n<p>Wenn wir eine Gruppe von Routen haben, k\u00f6nnen wir, anstatt sie einzeln zu \u00e4ndern, die zus\u00e4tzlichen Dienstprogramme nutzen, die Laravel bietet, wie <code>prefix<\/code> und <code>name<\/code> auf der <code>Route<\/code> Fassade.<\/p>\n<p>Die Methode <code>prefix<\/code> kann verwendet werden, um jeder Route in der Gruppe einen bestimmten URI voranzustellen, und die Methode <code>name<\/code> kann verwendet werden, um jedem Routennamen einen bestimmten String voranzustellen.<\/p>\n<p>So k\u00f6nnen wir neue Dinge wie Admin-Routen erstellen, ohne dass wir jeden einzelnen Namen oder jedes Pr\u00e4fix \u00e4ndern m\u00fcssen, um sie zu identifizieren:<\/p>\n<pre><code class=\"language-php\"> Route::name('admin.\")-&gt;group(function() {\n  Route::prefix(\"admin\")-&gt;group(function() {\n    Route::get('\/get')-&gt;name('get');\n    Route::put('\/put')-&gt;name(put');\n    Route::post('\/post')-&gt;name('post');\n  });\n});<\/code><\/pre>\n<p>Die URIs f\u00fcr diese Routen lauten dann <code>admin\/get<\/code>, <code>admin\/put<\/code>, <code>admin\/post<\/code> und die Namen <code>admin.get<\/code>, <code>admin.put<\/code> und <code>admin.post<\/code>.<\/p>\n<h2>Routen-Caching<\/h2>\n<p>Wenn die Anwendung auf Produktionsservern eingesetzt wird, nutzt ein guter <a href=\"https:\/\/kinsta.com\/de\/blog\/laravel-entwickler\/\">Laravel-Entwickler<\/a> den Routen-Cache von Laravel.<\/p>\n<h3>Was ist Route Caching?<\/h3>\n<p>Das Routen-Caching verk\u00fcrzt die Zeit, die f\u00fcr die Registrierung aller Routen der Anwendung ben\u00f6tigt wird.<\/p>\n<p>Beim Ausf\u00fchren von <code>php artisan route:cache<\/code> wird eine Instanz von <code>Illuminate\/Routing\/RouteCollection<\/code> erzeugt und die serialisierte Ausgabe wird nach der Verschl\u00fcsselung in <code>bootstrap\/cache.routes.php<\/code> geschrieben.<\/p>\n<p>Nun wird jede andere Anfrage diese <a href=\"https:\/\/kinsta.com\/de\/blog\/laravel-caching\/\">Cache-Datei laden<\/a>, wenn sie existiert. Daher muss unsere Anwendung die Eintr\u00e4ge aus der Routendatei nicht mehr parsen und in <code>Illuminate\/Routing\/Route<\/code> Objekte in <code>Illuminate\/Routing\/RouteCollection<\/code> umwandeln.<\/p>\n<h3>Warum es wichtig ist, Route Caching zu verwenden<\/h3>\n<p>Wenn du das Route Caching von Laravel nicht nutzt, riskierst du, dass deine Anwendung langsamer l\u00e4uft, als sie k\u00f6nnte, was wiederum den Umsatz, die Benutzerbindung und das <a href=\"https:\/\/kinsta.com\/de\/blog\/trust-badges\/\">Vertrauen in deine Marke<\/a> beeintr\u00e4chtigen kann.<\/p>\n<p>Je nach Umfang deines Projekts und je nachdem, wie viele Routen es gibt, kann ein einfacher Route-Caching-Befehl <a href=\"https:\/\/kinsta.com\/de\/blog\/webseiten-qeschwindigkeitstest\/\">deine Anwendung um 130 % bis 500 % beschleunigen<\/a> &#8211; ein enormer Gewinn f\u00fcr fast keinen Aufwand.<\/p>\n<h2>Zusammenfassung<\/h2>\n<p>Routing ist das R\u00fcckgrat der Backend-Entwicklung. Das Laravel-Framework zeichnet sich dadurch aus, dass es eine ausf\u00fchrliche M\u00f6glichkeit bietet, Routen zu definieren und zu verwalten.<\/p>\n<p>Die Entwicklung kann in der Tat f\u00fcr jeden zug\u00e4nglich sein und dazu beitragen, eine <a href=\"https:\/\/kinsta.com\/de\/blog\/laravel-leistung\/\">Anwendung zu beschleunigen<\/a>, allein dadurch, dass sie in Laravel erstellt wurde.<\/p>\n<p>Welche anderen Tricks und Tipps sind dir in Bezug auf Laravel-Routen begegnet? Lass es uns in den Kommentaren wissen!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Wenn es um das Backend geht, sto\u00dfen Entwickler irgendwann auf Routen. Routen k\u00f6nnen als das R\u00fcckgrat des Backends betrachtet werden, da jede Anfrage, die der Server &#8230;<\/p>\n","protected":false},"author":267,"featured_media":57116,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_kinsta_gated_content":false,"_kinsta_gated_content_redirect":"","footnotes":""},"tags":[400,894,770],"topic":[958],"class_list":["post-57115","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","tag-laravel","tag-laravel-routes","tag-php-frameworks","topic-laravel"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v24.6 (Yoast SEO v24.6) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Laravel-Routen beherrschen<\/title>\n<meta name=\"description\" content=\"Das Routing ist einer der wichtigsten Aspekte jeder Backend-Anwendung. Mit diesem Leitfaden bekommst du einen guten \u00dcberblick \u00fcber Laravel-Routen und Routing.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/kinsta.com\/de\/blog\/laravel-routen\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Laravel-Routen beherrschen\" \/>\n<meta property=\"og:description\" content=\"Das Routing ist einer der wichtigsten Aspekte jeder Backend-Anwendung. Mit diesem Leitfaden bekommst du einen guten \u00dcberblick \u00fcber Laravel-Routen und Routing.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kinsta.com\/de\/blog\/laravel-routen\/\" \/>\n<meta property=\"og:site_name\" content=\"Kinsta\u00ae\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/Kinsta-Deutschland-207459890108303\/\" \/>\n<meta property=\"article:published_time\" content=\"2022-12-16T13:12:50+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-08-29T05:34:12+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2022\/12\/laravel-routes.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1460\" \/>\n\t<meta property=\"og:image:height\" content=\"730\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Coman Cosmin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:description\" content=\"Das Routing ist einer der wichtigsten Aspekte jeder Backend-Anwendung. Mit diesem Leitfaden bekommst du einen guten \u00dcberblick \u00fcber Laravel-Routen und Routing.\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2022\/12\/laravel-routes.jpg\" \/>\n<meta name=\"twitter:creator\" content=\"@Kinsta_DE\" \/>\n<meta name=\"twitter:site\" content=\"@Kinsta_DE\" \/>\n<meta name=\"twitter:label1\" content=\"Verfasst von\" \/>\n\t<meta name=\"twitter:data1\" content=\"Coman Cosmin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"9\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/kinsta.com\/de\/blog\/laravel-routen\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/de\/blog\/laravel-routen\/\"},\"author\":{\"name\":\"Coman Cosmin\",\"@id\":\"https:\/\/kinsta.com\/de\/#\/schema\/person\/aa307e51da3929c7aead1f4b4439f3da\"},\"headline\":\"Laravel-Routen beherrschen\",\"datePublished\":\"2022-12-16T13:12:50+00:00\",\"dateModified\":\"2023-08-29T05:34:12+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/kinsta.com\/de\/blog\/laravel-routen\/\"},\"wordCount\":1717,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/de\/#organization\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/de\/blog\/laravel-routen\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2022\/12\/laravel-routes.jpg\",\"keywords\":[\"laravel\",\"laravel routes\",\"php frameworks\"],\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/kinsta.com\/de\/blog\/laravel-routen\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/kinsta.com\/de\/blog\/laravel-routen\/\",\"url\":\"https:\/\/kinsta.com\/de\/blog\/laravel-routen\/\",\"name\":\"Laravel-Routen beherrschen\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/de\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/kinsta.com\/de\/blog\/laravel-routen\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/de\/blog\/laravel-routen\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2022\/12\/laravel-routes.jpg\",\"datePublished\":\"2022-12-16T13:12:50+00:00\",\"dateModified\":\"2023-08-29T05:34:12+00:00\",\"description\":\"Das Routing ist einer der wichtigsten Aspekte jeder Backend-Anwendung. Mit diesem Leitfaden bekommst du einen guten \u00dcberblick \u00fcber Laravel-Routen und Routing.\",\"breadcrumb\":{\"@id\":\"https:\/\/kinsta.com\/de\/blog\/laravel-routen\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/kinsta.com\/de\/blog\/laravel-routen\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\/\/kinsta.com\/de\/blog\/laravel-routen\/#primaryimage\",\"url\":\"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2022\/12\/laravel-routes.jpg\",\"contentUrl\":\"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2022\/12\/laravel-routes.jpg\",\"width\":1460,\"height\":730},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/kinsta.com\/de\/blog\/laravel-routen\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/kinsta.com\/de\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Laravel\",\"item\":\"https:\/\/kinsta.com\/de\/thema\/laravel\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Laravel-Routen beherrschen\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/kinsta.com\/de\/#website\",\"url\":\"https:\/\/kinsta.com\/de\/\",\"name\":\"Kinsta\u00ae\",\"description\":\"Schnelle, sichere und hochwertige Hosting-L\u00f6sungen\",\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/de\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/kinsta.com\/de\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/kinsta.com\/de\/#organization\",\"name\":\"Kinsta\",\"url\":\"https:\/\/kinsta.com\/de\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\/\/kinsta.com\/de\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2023\/12\/kinsta-logo.jpeg\",\"contentUrl\":\"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2023\/12\/kinsta-logo.jpeg\",\"width\":500,\"height\":500,\"caption\":\"Kinsta\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/de\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/Kinsta-Deutschland-207459890108303\/\",\"https:\/\/x.com\/Kinsta_DE\",\"https:\/\/www.instagram.com\/kinstahosting\/\",\"https:\/\/www.linkedin.com\/company\/kinsta\/\",\"https:\/\/www.pinterest.com\/kinstahosting\/\",\"https:\/\/www.youtube.com\/c\/Kinsta\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/kinsta.com\/de\/#\/schema\/person\/aa307e51da3929c7aead1f4b4439f3da\",\"name\":\"Coman Cosmin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\/\/kinsta.com\/de\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/ede71ae86b38c64bcf00417fd17a686b?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/ede71ae86b38c64bcf00417fd17a686b?s=96&d=mm&r=g\",\"caption\":\"Coman Cosmin\"},\"description\":\"Cosmin Coman is a technology writer and developer with over 3 years of experience. Apart from writing for Kinsta, he has assisted in research at nuclear physics facilities and universities. Tech-savvy and integrated into the community, he always comes up with innovative solutions.\",\"url\":\"https:\/\/kinsta.com\/de\/blog\/author\/comancosmin\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Laravel-Routen beherrschen","description":"Das Routing ist einer der wichtigsten Aspekte jeder Backend-Anwendung. Mit diesem Leitfaden bekommst du einen guten \u00dcberblick \u00fcber Laravel-Routen und Routing.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/kinsta.com\/de\/blog\/laravel-routen\/","og_locale":"de_DE","og_type":"article","og_title":"Laravel-Routen beherrschen","og_description":"Das Routing ist einer der wichtigsten Aspekte jeder Backend-Anwendung. Mit diesem Leitfaden bekommst du einen guten \u00dcberblick \u00fcber Laravel-Routen und Routing.","og_url":"https:\/\/kinsta.com\/de\/blog\/laravel-routen\/","og_site_name":"Kinsta\u00ae","article_publisher":"https:\/\/www.facebook.com\/Kinsta-Deutschland-207459890108303\/","article_published_time":"2022-12-16T13:12:50+00:00","article_modified_time":"2023-08-29T05:34:12+00:00","og_image":[{"width":1460,"height":730,"url":"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2022\/12\/laravel-routes.jpg","type":"image\/jpeg"}],"author":"Coman Cosmin","twitter_card":"summary_large_image","twitter_description":"Das Routing ist einer der wichtigsten Aspekte jeder Backend-Anwendung. Mit diesem Leitfaden bekommst du einen guten \u00dcberblick \u00fcber Laravel-Routen und Routing.","twitter_image":"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2022\/12\/laravel-routes.jpg","twitter_creator":"@Kinsta_DE","twitter_site":"@Kinsta_DE","twitter_misc":{"Verfasst von":"Coman Cosmin","Gesch\u00e4tzte Lesezeit":"9\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/kinsta.com\/de\/blog\/laravel-routen\/#article","isPartOf":{"@id":"https:\/\/kinsta.com\/de\/blog\/laravel-routen\/"},"author":{"name":"Coman Cosmin","@id":"https:\/\/kinsta.com\/de\/#\/schema\/person\/aa307e51da3929c7aead1f4b4439f3da"},"headline":"Laravel-Routen beherrschen","datePublished":"2022-12-16T13:12:50+00:00","dateModified":"2023-08-29T05:34:12+00:00","mainEntityOfPage":{"@id":"https:\/\/kinsta.com\/de\/blog\/laravel-routen\/"},"wordCount":1717,"commentCount":0,"publisher":{"@id":"https:\/\/kinsta.com\/de\/#organization"},"image":{"@id":"https:\/\/kinsta.com\/de\/blog\/laravel-routen\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2022\/12\/laravel-routes.jpg","keywords":["laravel","laravel routes","php frameworks"],"inLanguage":"de","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/kinsta.com\/de\/blog\/laravel-routen\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/kinsta.com\/de\/blog\/laravel-routen\/","url":"https:\/\/kinsta.com\/de\/blog\/laravel-routen\/","name":"Laravel-Routen beherrschen","isPartOf":{"@id":"https:\/\/kinsta.com\/de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/kinsta.com\/de\/blog\/laravel-routen\/#primaryimage"},"image":{"@id":"https:\/\/kinsta.com\/de\/blog\/laravel-routen\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2022\/12\/laravel-routes.jpg","datePublished":"2022-12-16T13:12:50+00:00","dateModified":"2023-08-29T05:34:12+00:00","description":"Das Routing ist einer der wichtigsten Aspekte jeder Backend-Anwendung. Mit diesem Leitfaden bekommst du einen guten \u00dcberblick \u00fcber Laravel-Routen und Routing.","breadcrumb":{"@id":"https:\/\/kinsta.com\/de\/blog\/laravel-routen\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kinsta.com\/de\/blog\/laravel-routen\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/kinsta.com\/de\/blog\/laravel-routen\/#primaryimage","url":"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2022\/12\/laravel-routes.jpg","contentUrl":"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2022\/12\/laravel-routes.jpg","width":1460,"height":730},{"@type":"BreadcrumbList","@id":"https:\/\/kinsta.com\/de\/blog\/laravel-routen\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/kinsta.com\/de\/"},{"@type":"ListItem","position":2,"name":"Laravel","item":"https:\/\/kinsta.com\/de\/thema\/laravel\/"},{"@type":"ListItem","position":3,"name":"Laravel-Routen beherrschen"}]},{"@type":"WebSite","@id":"https:\/\/kinsta.com\/de\/#website","url":"https:\/\/kinsta.com\/de\/","name":"Kinsta\u00ae","description":"Schnelle, sichere und hochwertige Hosting-L\u00f6sungen","publisher":{"@id":"https:\/\/kinsta.com\/de\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/kinsta.com\/de\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"},{"@type":"Organization","@id":"https:\/\/kinsta.com\/de\/#organization","name":"Kinsta","url":"https:\/\/kinsta.com\/de\/","logo":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/kinsta.com\/de\/#\/schema\/logo\/image\/","url":"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2023\/12\/kinsta-logo.jpeg","contentUrl":"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2023\/12\/kinsta-logo.jpeg","width":500,"height":500,"caption":"Kinsta"},"image":{"@id":"https:\/\/kinsta.com\/de\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/Kinsta-Deutschland-207459890108303\/","https:\/\/x.com\/Kinsta_DE","https:\/\/www.instagram.com\/kinstahosting\/","https:\/\/www.linkedin.com\/company\/kinsta\/","https:\/\/www.pinterest.com\/kinstahosting\/","https:\/\/www.youtube.com\/c\/Kinsta"]},{"@type":"Person","@id":"https:\/\/kinsta.com\/de\/#\/schema\/person\/aa307e51da3929c7aead1f4b4439f3da","name":"Coman Cosmin","image":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/kinsta.com\/de\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/ede71ae86b38c64bcf00417fd17a686b?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/ede71ae86b38c64bcf00417fd17a686b?s=96&d=mm&r=g","caption":"Coman Cosmin"},"description":"Cosmin Coman is a technology writer and developer with over 3 years of experience. Apart from writing for Kinsta, he has assisted in research at nuclear physics facilities and universities. Tech-savvy and integrated into the community, he always comes up with innovative solutions.","url":"https:\/\/kinsta.com\/de\/blog\/author\/comancosmin\/"}]}},"acf":[],"_links":{"self":[{"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/posts\/57115","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/users\/267"}],"replies":[{"embeddable":true,"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/comments?post=57115"}],"version-history":[{"count":10,"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/posts\/57115\/revisions"}],"predecessor-version":[{"id":57310,"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/posts\/57115\/revisions\/57310"}],"alternate":[{"embeddable":true,"hreflang":"en","title":"English","href":"https:\/\/kinsta.com\/de\/wp-json\/kinsta\/v1\/posts\/57115\/translations\/en"},{"embeddable":true,"hreflang":"it","title":"Italian","href":"https:\/\/kinsta.com\/de\/wp-json\/kinsta\/v1\/posts\/57115\/translations\/it"},{"embeddable":true,"hreflang":"pt","title":"Portuguese","href":"https:\/\/kinsta.com\/de\/wp-json\/kinsta\/v1\/posts\/57115\/translations\/pt"},{"embeddable":true,"hreflang":"fr","title":"French","href":"https:\/\/kinsta.com\/de\/wp-json\/kinsta\/v1\/posts\/57115\/translations\/fr"},{"embeddable":true,"hreflang":"de","title":"German","href":"https:\/\/kinsta.com\/de\/wp-json\/kinsta\/v1\/posts\/57115\/translations\/de"},{"embeddable":true,"hreflang":"ja","title":"Japanese","href":"https:\/\/kinsta.com\/de\/wp-json\/kinsta\/v1\/posts\/57115\/translations\/jp"},{"embeddable":true,"hreflang":"nl","title":"Dutch","href":"https:\/\/kinsta.com\/de\/wp-json\/kinsta\/v1\/posts\/57115\/translations\/nl"},{"embeddable":true,"hreflang":"es","title":"Spanish","href":"https:\/\/kinsta.com\/de\/wp-json\/kinsta\/v1\/posts\/57115\/translations\/es"},{"embeddable":true,"hreflang":"sv","title":"Swedish","href":"https:\/\/kinsta.com\/de\/wp-json\/kinsta\/v1\/posts\/57115\/translations\/se"},{"embeddable":true,"hreflang":"da","title":"Danish","href":"https:\/\/kinsta.com\/de\/wp-json\/kinsta\/v1\/posts\/57115\/translations\/dk"},{"href":"https:\/\/kinsta.com\/de\/wp-json\/kinsta\/v1\/posts\/57115\/tree"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/media\/57116"}],"wp:attachment":[{"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/media?parent=57115"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/tags?post=57115"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/topic?post=57115"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}