Skip to main content

Wat is Wayfinder?

Laravel Wayfinder is een pakket dat je Laravel-backend en TypeScript-frontend zonder frictie met elkaar verbindt. Het genereert automatisch volledig getypeerde TypeScript-functies op basis van je controllers en routes, zodat je Laravel-endpoints direct als functies kunt aanroepen vanuit je frontend-code. Hardcoded URL’s, handmatig beheer van routeparameters en het handmatig synchroniseren van backend-wijzigingen — dat is allemaal niet meer nodig.
Wayfinder is een bètaversie (momenteel v0.1.x). De API kan nog wijzigen tot de release van v1.0.0. Alle belangrijke wijzigingen worden vastgelegd in de CHANGELOG.

Verschillen tussen Ziggy en Wayfinder

Wat is Ziggy?

Ziggy is een routehelper die jarenlang breed werd gebruikt in het Laravel-ecosysteem. Het stelt de routedefinities van Laravel beschikbaar aan JavaScript, zodat je URL’s kon genereren in de vorm van route('posts.show', { id: 1 }).

Waarom is het vervangen door Wayfinder?

Omdat Ziggy routenamen en parameters als strings behandelt, had het beperkingen in de samenwerking met TypeScript. Typefouten in routenamen of verkeerde parameternamen leiden pas tot runtime-errors. Wayfinder is TypeScript-first ontworpen en genereert controllermethodes als importeerbare functies. In de op Inertia gebaseerde Laravel starter kits (React, Vue, Svelte) is Wayfinder de standaard.

Installatie

1. Installeer het server-side pakket met Composer

2. Installeer de Vite-plugin met NPM

3. Voeg de plugin toe aan vite.config.js

Met de Vite-plugin worden de TypeScript-bestanden automatisch opnieuw gegenereerd zodra PHP-bestanden of routebestanden wijzigen terwijl de ontwikkelserver draait.

TypeScript-definitiebestanden genereren

Genereer de TypeScript-bestanden met het commando wayfinder:generate.
Standaard worden er drie mappen gegenereerd onder resources/js.
Omdat de gegenereerde bestanden bij elke build volledig opnieuw worden aangemaakt, raden we aan ze toe te voegen aan .gitignore. Sluit de drie mappen wayfinder, actions en routes samen uit.
Wil je de uitvoerlocatie wijzigen, gebruik dan de optie --path.
Je kunt ook alleen controlleracties of alleen routes genereren.

Basisgebruik

Acties importeren en gebruiken

Een voorbeeld dat de URL genereert voor de show-methode van PostController.
Heb je alleen de URL nodig, gebruik dan .url().
Je kunt ook een specifieke HTTP-methode opgeven.

Parameters doorgeven

De functies van Wayfinder accepteren parameters in verschillende vormen.
Als er een keybinding op de route is opgegeven (/posts/{post:slug}), kun je die waarde gebruiken.

Een hele controller importeren

Je kunt ook een hele controller importeren en de methodes daarop aanroepen.
Als je een hele controller importeert, werkt tree shaking niet en komen alle acties in je bundel terecht. Door acties afzonderlijk te importeren houd je de uiteindelijke bundel kleiner.

Single action controllers

Een single action controller (invokable controller) roep je aan als de geïmporteerde functie zelf.

Named routes importeren

Om routes via hun naam te benaderen gebruik je de bestanden onder routes/.

Queryparameters

Aan alle Wayfinder-functies kun je queryparameters toevoegen met de optie query.
Om te mergen met de queryparameters van de huidige URL gebruik je mergeQuery.

Formuliervarianten

Voor gebruik in traditionele HTML-formulieren genereer je met de optie --with-form en gebruik je de .form-variant.

Inertia en Wayfinder combineren

Als je de formulierhelper van Inertia combineert met Wayfinder, kun je formulieren versturen zonder ook maar één URL-string te schrijven.
Ook met de Link-component werkt het op dezelfde manier.

Gebruik in de starter kits

Als je met laravel new een nieuw project aanmaakt en React, Vue of Svelte kiest, krijg je een configuratie waarin Wayfinder automatisch is ingesteld. De starter kits bevatten het volgende.
  • Composer-pakket laravel/wayfinder
  • NPM-pakket @laravel/vite-plugin-wayfinder
  • Plugin geconfigureerd in vite.config.js
  • Gegenereerde mappen toegevoegd aan .gitignore
Handmatige installatie in een bestaand project doe je met de stappen hierboven.

Omgaan met methodenamen die botsen met gereserveerde woorden

Controllermethodes met dezelfde naam als een gereserveerd JavaScript-woord, zoals delete of import, krijgen het achtervoegsel Method.

Huidige status (v0.1.x)

De huidige stabiele versie wordt geleverd via de v0.1.x-branch. De nieuwste versie per maart 2026 is v0.1.15.

Belangrijkste wijzigingen in de v0.1.x-reeks


Next-generation features in ontwikkeling in de next-branch

In de next-branch wordt gewerkt aan een volgende versie met sterk uitgebreide functionaliteit ten opzichte van de huidige v0.1.x.
De next-branch kun je installeren met de constraint dev-next, maar de API kan nog flink veranderen. Gebruik in productie wordt niet aanbevolen.
Waar v0.1.x zich beperkt tot routes en controlleracties, genereert de volgende versie dit alles als TypeScript.

TypeScript-types genereren voor Form Requests

Uit bovenstaande Form Request wordt het volgende type gegenereerd.

Types genereren voor Eloquent-modellen

Uit bovenstaand model worden types gegenereerd in types.d.ts.

PHP-enums omzetten naar TypeScript

Er worden zowel types als constanten gegenereerd.

Gewijzigde uitvoermappen

In v0.1.x waren er drie aparte mappen — actions/, routes/ en wayfinder/ — maar in de volgende versie wordt alles samengebracht onder resources/js/wayfinder.

Belangrijkste wijzigingen van v0.1.x naar next

  • Het importpad verandert van @/actions/... naar @/wayfinder/...
  • De flags --skip-actions, --skip-routes en --with-form vervallen en verhuizen naar een configuratiebestand
  • types.ts wordt types.d.ts

Samenvatting

Laravel Wayfinder is een pakket dat de functionaliteit die Ziggy bood — Laravel-routes refereren vanuit JavaScript — TypeScript-first opnieuw heeft ontworpen. Door de aanpak van gegenereerde functies die je importeert, is er een grote verbetering op het gebied van typeveiligheid, IDE-ondersteuning en tree shaking. Ook in de huidige v0.1.x kun je routes en controlleracties al typeveilig refereren, en het is standaard opgenomen in de op Inertia gebaseerde Laravel starter kits. De volgende versie, in ontwikkeling in de next-branch, groeit uit tot een nog completer typeveilig fundament dat ook Form Requests, Eloquent-modellen, enums en Inertia page props als TypeScript genereert.

Laravel Wayfinder GitHub

De broncode, CHANGELOG en issues vind je hier.

Vite Plugin Wayfinder

Details over de configuratieopties van de Vite-plugin vind je hier.
Laatst gewijzigd op 6 september 2026