Les 1 · Module 1 · Laravel-basis
Je eerste Laravel-project
Een nieuw Laravel-project maken, de mappenstructuur leren kennen en je eerste route toevoegen.
🎯 Na deze les kun je
- een Laravel-project aanmaken en starten
- uitleggen waar routes, views en configuratie staan
- een route met een Blade-view maken
In Een beetje PHP schreef je zelf de code die een formulier verwerkt en met PDO een database aanspreekt. Laravel doet niets wat je niet zelf zou kunnen, maar het geeft vaste plekken en hulpmiddelen voor alles wat je in elk project opnieuw nodig hebt: routing, templates, database, validatie, inloggen.
Wat je nodig hebt
- PHP 8.2 of nieuwer en Composer (
php -v,composer -V) - Kennis van PHP-functies, arrays, klassen en formulieren uit Een beetje PHP
Project maken
composer create-project laravel/laravel kassa
cd kassa
php artisan serve
Open http://127.0.0.1:8000. Je ziet de welkomstpagina van Laravel.
De belangrijkste mappen
| Map | Wat staat er |
|---|---|
routes/web.php |
welke URL naar welke code gaat |
app/Http/Controllers |
controllers (komt in les 2) |
resources/views |
Blade-templates (HTML met een beetje PHP) |
config/ en .env |
instellingen; .env bevat geheimen en hoort niet in Git |
database/migrations |
het databaseschema als code |
Uitgewerkt voorbeeld
Open routes/web.php en voeg toe:
Route::get('/totaal/{bedrag}', function (int $bedrag) {
return view('totaal', ['bedrag' => $bedrag, 'btw' => $bedrag * 0.21]);
})->whereNumber('bedrag');
Maak resources/views/totaal.blade.php:
<h1>Kassa</h1>
<p>Bedrag: {{ $bedrag }} euro, btw: {{ number_format($btw, 2, ',', '.') }} euro</p>
Voorspel eerst: wat gebeurt er bij /totaal/100, en wat bij /totaal/abc?
Bij /totaal/100 zie je btw: 21,00 euro. Bij /totaal/abc krijg je een 404, omdat
whereNumber alleen cijfers toelaat.
{{ ... }} in Blade escapet de waarde automatisch. Daardoor kan een gebruiker geen HTML of JavaScript
in je pagina smokkelen. In gewoon PHP moest je daar zelf htmlspecialchars voor gebruiken.
Oefenen
- Voeg een route
/overtoe met een eigen view. - Toon in
totaal.blade.phpook het bedrag inclusief btw. - Draai
php artisan route:listen zoek je routes op.
Typische fouten
No application encryption key has been specified: draaiphp artisan key:generate.- View not found: controleer de bestandsnaam:
totaal.blade.php, enview('totaal')zonder extensie. - Wijziging in
.envwerkt niet: stop de server en start hem opnieuw, of draaiphp artisan config:clear.
Samenvatting
Een Laravel-project heeft een vaste structuur: routes in routes/, templates in resources/views/,
instellingen in .env. In de volgende les verplaats je de code uit de route naar een controller.