{"id":48592,"date":"2022-12-16T14:14:33","date_gmt":"2022-12-16T13:14:33","guid":{"rendered":"https:\/\/kinqsta.com\/nl\/?p=48592&#038;preview=true&#038;preview_id=48592"},"modified":"2023-06-30T15:17:38","modified_gmt":"2023-06-30T13:17:38","slug":"laravel-routes","status":"publish","type":"post","link":"https:\/\/kinqsta.com\/nl\/blog\/laravel-routes\/","title":{"rendered":"Zo krijg je Laravel routes onder de knie"},"content":{"rendered":"<p>Wat de backend betreft, komt elke developer uiteindelijk wel in aanraking met routes. Routes kunnen worden beschouwd als de ruggengraat van de backend, omdat elk verzoek dat de server ontvangt wordt doorgestuurd naar een controller via een routinglijst die verzoeken koppelt aan controllers of acties.<\/p>\n<p><a href=\"https:\/\/kinqsta.com\/nl\/blog\/wat-is-laravel\/\">Laravel<\/a> verbergt veel informatie over de uitvoering voor ons en bevat veel <em>syntactic sugar <\/em>om zowel nieuwe als ervaren developers te helpen bij de ontwikkeling van hun webapplicaties.<\/p>\n<p>Laten we dus eens goed bekijken hoe je routes beheert in Laravel.<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 en cross-site scripting in Laravel<\/h2>\n<p>Op een server bestaan zowel public als private routes. Public routes kunnen een bron van zorg zijn vanwege de mogelijkheid van cross-site scripting (XSS), een soort <a href=\"https:\/\/kinqsta.com\/nl\/blog\/sql-injecties\/\">injectie-aanval<\/a> die jou en je gebruikers <a href=\"https:\/\/kinqsta.com\/nl\/blog\/soorten-malware\/\">kwetsbaar kan maken voor hackers<\/a>.<\/p>\n<p>Het probleem is dat een gebruiker kan worden omgeleid van een route waarvoor geen sessietoken nodig is naar een route waarvoor dat wel nodig is &#8211; en hij heeft nog steeds toegang zonder het token.<\/p>\n\n<p>De eenvoudigste manier om dit probleem op te lossen is om een nieuwe HTTP header af te dwingen en &#8220;referrer&#8221; toe te voegen aan de route om dit scenario te beperken:<\/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:\/\/kinqsta.com\/nl\/blog\/laravel-9\/\">Laravel<\/a> stellen routes gebruikers in staat om het juiste verzoek naar de gewenste controller te routen. De meest elementaire Laravel Route accepteert een Uniform Asset Identifier (je route path) en een afsluiting die zowel een functie als een klasse kan zijn.<\/p>\n<p>In Laravel worden routes gemaakt in de bestanden <strong>web.php<\/strong> en <strong>api.php<\/strong>. Laravel wordt standaard geleverd met twee routes: \u00e9\u00e9n voor het WEB en \u00e9\u00e9n voor de API.<\/p>\n<p>Deze routes staan in de map <strong>routes\/<\/strong>, maar ze worden geladen in de <strong>Providers\/RouteServiceProvider.php<\/strong>.<\/p>\n<figure style=\"width: 875px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/kinqsta.com\/wp-content\/uploads\/2022\/10\/laravel-route-provider-default.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinqsta.com\/wp-content\/uploads\/2022\/10\/laravel-route-provider-default.png\" alt=\"Standaard state van route service provider van Laravel in de command line.\" width=\"875\" height=\"628\"><\/a><figcaption class=\"wp-caption-text\">Standaard state van route service provider van Laravel.<\/figcaption><\/figure>\n<p>In plaats daarvan kunnen we de routes rechtstreeks laden in <strong>RouteServiceProvider.php<\/strong>, waarbij we de map <strong>routes\/<\/strong> helemaal overslaan.<\/p>\n<figure style=\"width: 875px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/kinqsta.com\/wp-content\/uploads\/2022\/10\/loading-laravel-routes-directly.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinqsta.com\/wp-content\/uploads\/2022\/10\/loading-laravel-routes-directly.png\" alt=\"Laravel routes direct laden in de provider via de command line\" width=\"875\" height=\"413\"><\/a><figcaption class=\"wp-caption-text\">Laravel routes direct laden in de provider.<\/figcaption><\/figure>\n<h3>Redirects<\/h3>\n<p>Bij het defini\u00ebren van een route, zullen we meestal de gebruiker die er toegang toe krijgt willen omleiden, en de redenen daarvoor vari\u00ebren nogal. Het kan zijn omdat het een verouderde route is en we de backend of de server hebben veranderd, of het kan zijn omdat we <a href=\"https:\/\/kinqsta.com\/nl\/docs\/gebruikersinstellingen\/inloggen\/#enable-twofactor-authentication-2fa\">twee-factor authenticatie (2FA)<\/a> willen installeren, enzovoort.<\/p>\n<p>Laravel heeft een eenvoudige manier om dit te doen. Dankzij de eenvoud van het framework kunnen we de redirect methode gebruiken op de Route facade, die de entry route accepteert en de route waarnaar moet worden doorgestuurd.<\/p>\n<p>Optioneel kunnen we als derde parameter de statuscode voor de redirect meegeven. De methode <code>permanentRedirect<\/code> doet hetzelfde als de methode <code>redirect<\/code>, behalve dat hij altijd een <a href=\"https:\/\/kinqsta.com\/nl\/blog\/http-status-codes\/\">301 statuscode<\/a> teruggeeft:<\/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>Binnen de redirect routes is het verboden om de &#8220;destination&#8221; en &#8220;status&#8221; keywords als parameters te gebruiken, omdat die door Laravel zijn gereserveerd.<\/p>\n<pre><code class=\"language-php\">\/\/ Illegal to use\nRoute::redirect(\"\/home\", \"\/office\/{status}\");<\/code><\/pre>\n<h3>Views<\/h3>\n<p>Views zijn de .<strong>blade.php<\/strong> bestanden die we gebruiken om de frontend van onze Laravel applicatie te renderen. Het gebruikt de blade templating engine, en het is de standaard manier om een full-stack applicatie te bouwen met alleen Laravel.<\/p>\n<p>Als we willen dat onze route een view teruggeeft, kunnen we eenvoudigweg de view methode op de Route facade gebruiken. Deze accepteert een route parameter, een view naam, en een optionele array van waarden die aan de view worden doorgegeven.<\/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>Laten we aannemen dat onze view &#8220;Hello, <code>{name}<\/code>&#8221; wil zeggen door een optionele array met die parameter door te geven. Dat kunnen we doen met de volgende code (als de ontbrekende parameter vereist is in de view , zal het verzoek mislukken en een fout geven):<\/p>\n<pre><code class=\"language-php\">Route::view('\/homepage', 'homepage', ['name' =&gt; \"Kinsta\"]);<\/code><\/pre>\n<h3>Routelijst<\/h3>\n<p>Naarmate je applicatie groter wordt, groeit ook het aantal verzoeken dat geroutet moet worden. En met een grote hoeveelheid informatie kan verwarring ontstaan.<\/p>\n<p>Dit is waar het <code>artisan route:list<\/code> commando ons kan helpen. Het geeft een overzicht van alle routes die in de applicatie zijn gedefinieerd, hun middlewares en controllers.<\/p>\n<pre><code class=\"language-php\">php artisan route:list<\/code><\/pre>\n<p>Dit toont een lijst van alle routes zonder de middlewares. Hiervoor moeten we de flag <code>-v<\/code> gebruiken:<\/p>\n<pre><code class=\"language-php\"><code>php artisan route:list -v<\/code><\/code><\/pre>\n<p>In een situatie waarin je misschien een domein-gestuurd ontwerp gebruikt waarbij je routes specifieke namen in hun paden hebben, kun je als volgt gebruik maken van de filtermogelijkheden van dit commando:<\/p>\n<pre><code class=\"language-php\">php artisan route:list \u2013path=api\/account<\/code><\/pre>\n<p>Hiermee worden alleen de routes getoond die beginnen met <strong>api\/account<\/strong>.<\/p>\n<p>Aan de andere kant kunnen we Laravel opdragen om extern gedefinieerde routes uit te sluiten of op te nemen door de opties <code>\u2013except-vendor<\/code> of <code>\u2013only-vendor<\/code> te gebruiken.<\/p>\n<h2>Route parameters<\/h2>\n<p>Soms moet je met de route segmenten van de URI vastleggen, zoals een user ID of token. We kunnen dit doen door een routeparameter te defini\u00ebren, die altijd wordt omsloten door accolades (<code>{}<\/code>) en alleen mag bestaan uit alfabetische tekens.<\/p>\n<p>Als onze routes dependencies bevatten in hun callbacks, zal de Laravel service container ze automatisch injecteren:<\/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>Vereiste parameters<\/h3>\n<p>De vereiste parameters van Laravel zijn parameters in routes die we niet mogen overslaan bij een call. Anders wordt er een fout teruggegeven:<\/p>\n<pre><code class=\"language-php\">Route::post(\"\/gdpr\/{userId}\", GetGdprDataController.php\");<\/code><\/pre>\n<p>Nu hebben we binnen de <strong>GetGdprDataController.php<\/strong> direct toegang tot de<strong> $userId<\/strong> parameter.<\/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>Een route kan een willekeurig aantal parameters aannemen. Ze worden ge\u00efnjecteerd in de route callbacks\/controllers op basis van de volgorde waarin ze staan:<\/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>Optionele parameters<\/h3>\n<p>In een situatie waarin we iets willen doen op een route wanneer alleen een parameter aanwezig is en niets anders, zonder de hele applicatie te be\u00efnvloeden, kunnen we een optionele parameter toevoegen. Deze optionele parameters worden aangeduid met <code>?<\/code>:<\/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:\/\/kinqsta.com\/nl\/blog\/laravel-9\/\">Laravel<\/a> biedt ons een manier om te filteren hoe onze optionele of verplichte parameters eruit moeten zien.<\/p>\n<p>Stel dat we een string van een user ID willen. We kunnen dit valideren op routeniveau met de methode <code>where<\/code>.<\/p>\n<p>De methode <code>where<\/code> accepteert de naam van de parameter en de regex regel die zal worden toegepast op de validatie. Standaard neemt het de eerste parameter, maar als we er veel hebben, kunnen we een array doorgeven met de naam van de parameter als key en de regel als waarde, en Laravel zal ze allemaal voor ons parsen:<\/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>We kunnen nog een stap verder gaan en validatie toepassen op alle routes in onze applicatie door de methode <code>pattern<\/code> te gebruiken op de <code>Route<\/code> facade:<\/p>\n<pre><code class=\"language-php\"> Route::pattern('id', '[0-9]+');<\/code><\/pre>\n<p>Dit zal elke <code>id<\/code> parameter valideren met deze regex expressie. En als we die eenmaal gedefinieerd hebben, wordt hij automatisch toegepast op alle routes die die parameternaam gebruiken.<\/p>\n<p>Zoals we kunnen zien, gebruikt Laravel het teken <code>\/<\/code> als scheidingsteken in het pad. Als we het in het pad willen gebruiken, moeten we expliciet toestaan dat het deel uitmaakt van onze placeholder met behulp van een <code>where<\/code> regex.<\/p>\n<pre><code class=\"language-php\"> Route::get('\/find\/{query}', function ($query) {\n  \/\/\n})-&gt;where('query', , '.*');<\/code><\/pre>\n<p>Het enige nadeel hierbij is dat het alleen wordt ondersteund in het laatste routesegment.<\/p>\n<h2>Routes met een naam<\/h2>\n<p>Zoals het kopje al aangeeft, kunnen we routes een naam geven, zogenaamde named routes, wat het handig <a href=\"https:\/\/kinqsta.com\/nl\/blog\/wat-is-een-url\/\">maakt om URL&#8217;s<\/a> of omleidingen te genereren voor specifieke routes.<\/p>\n<h3>Zo maak je named routes<\/h3>\n<p>Een eenvoudige manier om een route met naam aan te maken wordt geboden door de methode <code>name<\/code> die aan de <code>Route<\/code> facade is gekoppeld. De naam van elke route moet uniek zijn:<\/p>\n<pre><code class=\"language-php\"> Route::get('\/', function () {\n})-&gt;name(\"homepage\");<\/code><\/pre>\n<h2>Routegroepen<\/h2>\n<p>Met routegroepen kun je route-attributen zoals middlewares delen over een groot aantal routes zonder ze op elke route opnieuw te hoeven defini\u00ebren.<\/p>\n<h3>Middleware<\/h3>\n<p>Door een middleware toe te wijzen aan alle routes die we hebben, kunnen we ze combineren in een groep, eerst door de methode <code>group<\/code> te gebruiken. E\u00e9n ding om rekening mee te houden is dat de middlewares worden uitgevoerd in de volgorde waarin ze op de groep worden toegepast:<\/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>Controllers<\/h3>\n<p>Als een groep dezelfde controller gebruikt, kunnen we de methode <code>controller<\/code> gebruiken om de gemeenschappelijke controller voor alle routes binnen die groep te defini\u00ebren. Nu moeten we de methode specificeren die de route zal callen.<\/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>Subdomeinroutes<\/h3>\n<p><a href=\"https:\/\/kinqsta.com\/nl\/blog\/wordpress-subdomein\/\">Een subdomeinnaam<\/a> is een stukje extra informatie dat wordt toegevoegd aan het begin van de domeinnaam van een website. Hiermee kunnen websites hun inhoud voor specifieke functies, zoals online winkels, blogs, presentaties, enzovoort, scheiden en organiseren van de rest van de website.<\/p>\n<p>Onze routes kunnen worden gebruikt om routing van subdomeinen af te handelen. We kunnen het domein en een deel van het subdomein opvangen voor gebruik in onze controller en route. Met behulp van de <code>domain<\/code> methode op de <code>Route<\/code> facade kunnen we onze routes groeperen onder een enkel domein:<\/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>Prefixes en naamprefixes<\/h3>\n<p>Wanneer we een groep routes hebben, kunnen we in plaats van ze \u00e9\u00e9n voor \u00e9\u00e9n aan te passen, gebruik maken van de extra hulpprogramma&#8217;s die Laravel biedt, zoals <code>prefix<\/code> en <code>name<\/code> op de <code>Route<\/code> facade.<\/p>\n<p>De methode <code>prefix<\/code> kan gebruikt worden om elke route in de groep te prefixen met een gegeven URI, en de methode <code>name<\/code> kan gebruikt worden om elke routenaam te prefixen met een gegeven string.<\/p>\n<p>Hierdoor kunnen we nieuwe dingen maken zoals admin routes zonder dat we elke naam of prefix hoeven aan te passen om ze te identificeren:<\/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>Nu worden de URI&#8217;s voor deze routes <code>admin\/get<\/code>, <code>admin\/put<\/code>, <code>admin\/post<\/code>, en de namen <code>admin.get<\/code>, <code>admin.put<\/code>, en <code>admin.post<\/code>.<\/p>\n<h2>Routecaching<\/h2>\n<p>Bij het uitrollen van de applicatie naar productieservers zal een goede <a href=\"https:\/\/kinqsta.com\/blog\/laravel-developer\/\">Laravel developer<\/a> gebruik maken van Laravel&#8217;s routecache.<\/p>\n<h3>Wat is routecaching?<\/h3>\n<p>Routecaching vermindert de tijd die nodig is om alle routes van de applicatie te registreren.<\/p>\n<p>Met <code>php artisan route:cache<\/code> wordt een instance van <code>Illuminate\/Routing\/RouteCollection<\/code> gegenereerd, en na te zijn gecodeerd, wordt de geserialiseerde uitvoer geschreven naar <code>bootstrap\/cache.routes.php<\/code>.<\/p>\n<p>Nu zal elk ander verzoek <a href=\"https:\/\/kinqsta.com\/nl\/blog\/laravel-caching\/\">dit cachebestand laden<\/a>, als het bestaat. Daarom hoeft onze applicatie niet langer entries uit het routebestand te parsen en om te zetten in <code>Illuminate\/Routing\/Route<\/code> objecten in <code>Illuminate\/Routing\/RouteCollection<\/code>.<\/p>\n<h3>Waarom het belangrijk is om routecaching te gebruiken<\/h3>\n<p>Als je de routecaching feature van Laravel niet gebruikt, loop je het risico dat je applicatie langzamer draait dan hij zou kunnen, wat weer kan leiden tot minder sales, minder gebruikers en minder <a href=\"https:\/\/kinqsta.com\/blog\/trust-badges\/\">vertrouwen in je merk<\/a>.<\/p>\n<p>Afhankelijk van de schaal van je project en hoeveel routes er zijn, kan een eenvoudig routecaching commando <a href=\"https:\/\/kinqsta.com\/nl\/blog\/snelheidstest-website\/\">je applicatie versnellen<\/a> met 130% tot 500% &#8211; een enorme winst voor bijna geen moeite.<\/p>\n<h2>Samenvatting<\/h2>\n<p>Routing is de ruggengraat van backenddevelopment. Het Laravel framework blinkt hierin uit door een eenvoudige manier om routes te defini\u00ebren en te beheren.<\/p>\n<p>Laravel maakt development veel toegankelijker en helpt om op een eenvoudige manier <a href=\"https:\/\/kinqsta.com\/nl\/blog\/prestaties-laravel\/\">een app te versnellen<\/a>.<\/p>\n<p>Welke andere trucs en tips ben jij tegengekomen met betrekking tot Laravel routes? Laat het ons weten in de commentsectie!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Wat de backend betreft, komt elke developer uiteindelijk wel in aanraking met routes. Routes kunnen worden beschouwd als de ruggengraat van de backend, omdat elk verzoek &#8230;<\/p>\n","protected":false},"author":267,"featured_media":48593,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_kinsta_gated_content":false,"_kinsta_gated_content_redirect":"","footnotes":""},"tags":[368,812,809],"topic":[866],"class_list":["post-48592","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>Zo krijg je Laravel routes onder de knie<\/title>\n<meta name=\"description\" content=\"Routing is een van de belangrijkste aspecten van elke backend applicatie. Gebruik deze gids om Laravel routes en routing onder de knie te krijgen.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/kinqsta.com\/nl\/blog\/laravel-routes\/\" \/>\n<meta property=\"og:locale\" content=\"nl_NL\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Zo krijg je Laravel routes onder de knie\" \/>\n<meta property=\"og:description\" content=\"Routing is een van de belangrijkste aspecten van elke backend applicatie. Gebruik deze gids om Laravel routes en routing onder de knie te krijgen.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kinqsta.com\/nl\/blog\/laravel-routes\/\" \/>\n<meta property=\"og:site_name\" content=\"Kinsta\u00ae\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/Kinsta-Nederland-476213452787823\/\" \/>\n<meta property=\"article:published_time\" content=\"2022-12-16T13:14:33+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-06-30T13:17:38+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/kinqsta.com\/nl\/wp-content\/uploads\/sites\/7\/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=\"Routing is een van de belangrijkste aspecten van elke backend applicatie. Gebruik deze gids om Laravel routes en routing onder de knie te krijgen.\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/kinqsta.com\/nl\/wp-content\/uploads\/sites\/7\/2022\/12\/laravel-routes.jpg\" \/>\n<meta name=\"twitter:creator\" content=\"@Kinsta_NL\" \/>\n<meta name=\"twitter:site\" content=\"@Kinsta_NL\" \/>\n<meta name=\"twitter:label1\" content=\"Geschreven door\" \/>\n\t<meta name=\"twitter:data1\" content=\"Coman Cosmin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Geschatte leestijd\" \/>\n\t<meta name=\"twitter:data2\" content=\"10 minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/kinqsta.com\/nl\/blog\/laravel-routes\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/kinqsta.com\/nl\/blog\/laravel-routes\/\"},\"author\":{\"name\":\"Coman Cosmin\",\"@id\":\"https:\/\/kinqsta.com\/nl\/#\/schema\/person\/aa307e51da3929c7aead1f4b4439f3da\"},\"headline\":\"Zo krijg je Laravel routes onder de knie\",\"datePublished\":\"2022-12-16T13:14:33+00:00\",\"dateModified\":\"2023-06-30T13:17:38+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/kinqsta.com\/nl\/blog\/laravel-routes\/\"},\"wordCount\":1731,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/kinqsta.com\/nl\/#organization\"},\"image\":{\"@id\":\"https:\/\/kinqsta.com\/nl\/blog\/laravel-routes\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinqsta.com\/nl\/wp-content\/uploads\/sites\/7\/2022\/12\/laravel-routes.jpg\",\"keywords\":[\"laravel\",\"laravel routes\",\"php frameworks\"],\"inLanguage\":\"nl-NL\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/kinqsta.com\/nl\/blog\/laravel-routes\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/kinqsta.com\/nl\/blog\/laravel-routes\/\",\"url\":\"https:\/\/kinqsta.com\/nl\/blog\/laravel-routes\/\",\"name\":\"Zo krijg je Laravel routes onder de knie\",\"isPartOf\":{\"@id\":\"https:\/\/kinqsta.com\/nl\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/kinqsta.com\/nl\/blog\/laravel-routes\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/kinqsta.com\/nl\/blog\/laravel-routes\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinqsta.com\/nl\/wp-content\/uploads\/sites\/7\/2022\/12\/laravel-routes.jpg\",\"datePublished\":\"2022-12-16T13:14:33+00:00\",\"dateModified\":\"2023-06-30T13:17:38+00:00\",\"description\":\"Routing is een van de belangrijkste aspecten van elke backend applicatie. Gebruik deze gids om Laravel routes en routing onder de knie te krijgen.\",\"breadcrumb\":{\"@id\":\"https:\/\/kinqsta.com\/nl\/blog\/laravel-routes\/#breadcrumb\"},\"inLanguage\":\"nl-NL\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/kinqsta.com\/nl\/blog\/laravel-routes\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"nl-NL\",\"@id\":\"https:\/\/kinqsta.com\/nl\/blog\/laravel-routes\/#primaryimage\",\"url\":\"https:\/\/kinqsta.com\/nl\/wp-content\/uploads\/sites\/7\/2022\/12\/laravel-routes.jpg\",\"contentUrl\":\"https:\/\/kinqsta.com\/nl\/wp-content\/uploads\/sites\/7\/2022\/12\/laravel-routes.jpg\",\"width\":1460,\"height\":730},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/kinqsta.com\/nl\/blog\/laravel-routes\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/kinqsta.com\/nl\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Laravel\",\"item\":\"https:\/\/kinqsta.com\/nl\/onderwerpen\/laravel\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Zo krijg je Laravel routes onder de knie\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/kinqsta.com\/nl\/#website\",\"url\":\"https:\/\/kinqsta.com\/nl\/\",\"name\":\"Kinsta\u00ae\",\"description\":\"Snelle, veilige, premium hostingoplossingen\",\"publisher\":{\"@id\":\"https:\/\/kinqsta.com\/nl\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/kinqsta.com\/nl\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"nl-NL\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/kinqsta.com\/nl\/#organization\",\"name\":\"Kinsta\",\"url\":\"https:\/\/kinqsta.com\/nl\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"nl-NL\",\"@id\":\"https:\/\/kinqsta.com\/nl\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/kinqsta.com\/nl\/wp-content\/uploads\/sites\/7\/2023\/12\/kinsta-logo.jpeg\",\"contentUrl\":\"https:\/\/kinqsta.com\/nl\/wp-content\/uploads\/sites\/7\/2023\/12\/kinsta-logo.jpeg\",\"width\":500,\"height\":500,\"caption\":\"Kinsta\"},\"image\":{\"@id\":\"https:\/\/kinqsta.com\/nl\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/Kinsta-Nederland-476213452787823\/\",\"https:\/\/x.com\/Kinsta_NL\",\"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:\/\/kinqsta.com\/nl\/#\/schema\/person\/aa307e51da3929c7aead1f4b4439f3da\",\"name\":\"Coman Cosmin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"nl-NL\",\"@id\":\"https:\/\/kinqsta.com\/nl\/#\/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:\/\/kinqsta.com\/nl\/blog\/author\/comancosmin\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Zo krijg je Laravel routes onder de knie","description":"Routing is een van de belangrijkste aspecten van elke backend applicatie. Gebruik deze gids om Laravel routes en routing onder de knie te krijgen.","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:\/\/kinqsta.com\/nl\/blog\/laravel-routes\/","og_locale":"nl_NL","og_type":"article","og_title":"Zo krijg je Laravel routes onder de knie","og_description":"Routing is een van de belangrijkste aspecten van elke backend applicatie. Gebruik deze gids om Laravel routes en routing onder de knie te krijgen.","og_url":"https:\/\/kinqsta.com\/nl\/blog\/laravel-routes\/","og_site_name":"Kinsta\u00ae","article_publisher":"https:\/\/www.facebook.com\/Kinsta-Nederland-476213452787823\/","article_published_time":"2022-12-16T13:14:33+00:00","article_modified_time":"2023-06-30T13:17:38+00:00","og_image":[{"width":1460,"height":730,"url":"https:\/\/kinqsta.com\/nl\/wp-content\/uploads\/sites\/7\/2022\/12\/laravel-routes.jpg","type":"image\/jpeg"}],"author":"Coman Cosmin","twitter_card":"summary_large_image","twitter_description":"Routing is een van de belangrijkste aspecten van elke backend applicatie. Gebruik deze gids om Laravel routes en routing onder de knie te krijgen.","twitter_image":"https:\/\/kinqsta.com\/nl\/wp-content\/uploads\/sites\/7\/2022\/12\/laravel-routes.jpg","twitter_creator":"@Kinsta_NL","twitter_site":"@Kinsta_NL","twitter_misc":{"Geschreven door":"Coman Cosmin","Geschatte leestijd":"10 minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/kinqsta.com\/nl\/blog\/laravel-routes\/#article","isPartOf":{"@id":"https:\/\/kinqsta.com\/nl\/blog\/laravel-routes\/"},"author":{"name":"Coman Cosmin","@id":"https:\/\/kinqsta.com\/nl\/#\/schema\/person\/aa307e51da3929c7aead1f4b4439f3da"},"headline":"Zo krijg je Laravel routes onder de knie","datePublished":"2022-12-16T13:14:33+00:00","dateModified":"2023-06-30T13:17:38+00:00","mainEntityOfPage":{"@id":"https:\/\/kinqsta.com\/nl\/blog\/laravel-routes\/"},"wordCount":1731,"commentCount":0,"publisher":{"@id":"https:\/\/kinqsta.com\/nl\/#organization"},"image":{"@id":"https:\/\/kinqsta.com\/nl\/blog\/laravel-routes\/#primaryimage"},"thumbnailUrl":"https:\/\/kinqsta.com\/nl\/wp-content\/uploads\/sites\/7\/2022\/12\/laravel-routes.jpg","keywords":["laravel","laravel routes","php frameworks"],"inLanguage":"nl-NL","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/kinqsta.com\/nl\/blog\/laravel-routes\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/kinqsta.com\/nl\/blog\/laravel-routes\/","url":"https:\/\/kinqsta.com\/nl\/blog\/laravel-routes\/","name":"Zo krijg je Laravel routes onder de knie","isPartOf":{"@id":"https:\/\/kinqsta.com\/nl\/#website"},"primaryImageOfPage":{"@id":"https:\/\/kinqsta.com\/nl\/blog\/laravel-routes\/#primaryimage"},"image":{"@id":"https:\/\/kinqsta.com\/nl\/blog\/laravel-routes\/#primaryimage"},"thumbnailUrl":"https:\/\/kinqsta.com\/nl\/wp-content\/uploads\/sites\/7\/2022\/12\/laravel-routes.jpg","datePublished":"2022-12-16T13:14:33+00:00","dateModified":"2023-06-30T13:17:38+00:00","description":"Routing is een van de belangrijkste aspecten van elke backend applicatie. Gebruik deze gids om Laravel routes en routing onder de knie te krijgen.","breadcrumb":{"@id":"https:\/\/kinqsta.com\/nl\/blog\/laravel-routes\/#breadcrumb"},"inLanguage":"nl-NL","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kinqsta.com\/nl\/blog\/laravel-routes\/"]}]},{"@type":"ImageObject","inLanguage":"nl-NL","@id":"https:\/\/kinqsta.com\/nl\/blog\/laravel-routes\/#primaryimage","url":"https:\/\/kinqsta.com\/nl\/wp-content\/uploads\/sites\/7\/2022\/12\/laravel-routes.jpg","contentUrl":"https:\/\/kinqsta.com\/nl\/wp-content\/uploads\/sites\/7\/2022\/12\/laravel-routes.jpg","width":1460,"height":730},{"@type":"BreadcrumbList","@id":"https:\/\/kinqsta.com\/nl\/blog\/laravel-routes\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/kinqsta.com\/nl\/"},{"@type":"ListItem","position":2,"name":"Laravel","item":"https:\/\/kinqsta.com\/nl\/onderwerpen\/laravel\/"},{"@type":"ListItem","position":3,"name":"Zo krijg je Laravel routes onder de knie"}]},{"@type":"WebSite","@id":"https:\/\/kinqsta.com\/nl\/#website","url":"https:\/\/kinqsta.com\/nl\/","name":"Kinsta\u00ae","description":"Snelle, veilige, premium hostingoplossingen","publisher":{"@id":"https:\/\/kinqsta.com\/nl\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/kinqsta.com\/nl\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"nl-NL"},{"@type":"Organization","@id":"https:\/\/kinqsta.com\/nl\/#organization","name":"Kinsta","url":"https:\/\/kinqsta.com\/nl\/","logo":{"@type":"ImageObject","inLanguage":"nl-NL","@id":"https:\/\/kinqsta.com\/nl\/#\/schema\/logo\/image\/","url":"https:\/\/kinqsta.com\/nl\/wp-content\/uploads\/sites\/7\/2023\/12\/kinsta-logo.jpeg","contentUrl":"https:\/\/kinqsta.com\/nl\/wp-content\/uploads\/sites\/7\/2023\/12\/kinsta-logo.jpeg","width":500,"height":500,"caption":"Kinsta"},"image":{"@id":"https:\/\/kinqsta.com\/nl\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/Kinsta-Nederland-476213452787823\/","https:\/\/x.com\/Kinsta_NL","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:\/\/kinqsta.com\/nl\/#\/schema\/person\/aa307e51da3929c7aead1f4b4439f3da","name":"Coman Cosmin","image":{"@type":"ImageObject","inLanguage":"nl-NL","@id":"https:\/\/kinqsta.com\/nl\/#\/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:\/\/kinqsta.com\/nl\/blog\/author\/comancosmin\/"}]}},"acf":[],"_links":{"self":[{"href":"https:\/\/kinqsta.com\/nl\/wp-json\/wp\/v2\/posts\/48592","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kinqsta.com\/nl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kinqsta.com\/nl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kinqsta.com\/nl\/wp-json\/wp\/v2\/users\/267"}],"replies":[{"embeddable":true,"href":"https:\/\/kinqsta.com\/nl\/wp-json\/wp\/v2\/comments?post=48592"}],"version-history":[{"count":7,"href":"https:\/\/kinqsta.com\/nl\/wp-json\/wp\/v2\/posts\/48592\/revisions"}],"predecessor-version":[{"id":48751,"href":"https:\/\/kinqsta.com\/nl\/wp-json\/wp\/v2\/posts\/48592\/revisions\/48751"}],"alternate":[{"embeddable":true,"hreflang":"en","title":"English","href":"https:\/\/kinqsta.com\/nl\/wp-json\/kinsta\/v1\/posts\/48592\/translations\/en"},{"embeddable":true,"hreflang":"it","title":"Italian","href":"https:\/\/kinqsta.com\/nl\/wp-json\/kinsta\/v1\/posts\/48592\/translations\/it"},{"embeddable":true,"hreflang":"pt","title":"Portuguese","href":"https:\/\/kinqsta.com\/nl\/wp-json\/kinsta\/v1\/posts\/48592\/translations\/pt"},{"embeddable":true,"hreflang":"fr","title":"French","href":"https:\/\/kinqsta.com\/nl\/wp-json\/kinsta\/v1\/posts\/48592\/translations\/fr"},{"embeddable":true,"hreflang":"de","title":"German","href":"https:\/\/kinqsta.com\/nl\/wp-json\/kinsta\/v1\/posts\/48592\/translations\/de"},{"embeddable":true,"hreflang":"ja","title":"Japanese","href":"https:\/\/kinqsta.com\/nl\/wp-json\/kinsta\/v1\/posts\/48592\/translations\/jp"},{"embeddable":true,"hreflang":"nl","title":"Dutch","href":"https:\/\/kinqsta.com\/nl\/wp-json\/kinsta\/v1\/posts\/48592\/translations\/nl"},{"embeddable":true,"hreflang":"es","title":"Spanish","href":"https:\/\/kinqsta.com\/nl\/wp-json\/kinsta\/v1\/posts\/48592\/translations\/es"},{"embeddable":true,"hreflang":"sv","title":"Swedish","href":"https:\/\/kinqsta.com\/nl\/wp-json\/kinsta\/v1\/posts\/48592\/translations\/se"},{"embeddable":true,"hreflang":"da","title":"Danish","href":"https:\/\/kinqsta.com\/nl\/wp-json\/kinsta\/v1\/posts\/48592\/translations\/dk"},{"href":"https:\/\/kinqsta.com\/nl\/wp-json\/kinsta\/v1\/posts\/48592\/tree"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kinqsta.com\/nl\/wp-json\/wp\/v2\/media\/48593"}],"wp:attachment":[{"href":"https:\/\/kinqsta.com\/nl\/wp-json\/wp\/v2\/media?parent=48592"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kinqsta.com\/nl\/wp-json\/wp\/v2\/tags?post=48592"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/kinqsta.com\/nl\/wp-json\/wp\/v2\/topic?post=48592"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}