Beetje Coderen

Les 1 · Module 1 · Laravel-basis

Je eerste Laravel-project

Een nieuw Laravel-project maken, de mappenstructuur leren kennen en je eerste route toevoegen.

⏱ 60–90 minuten leestijd + oefenen

🎯 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

  1. Voeg een route /over toe met een eigen view.
  2. Toon in totaal.blade.php ook het bedrag inclusief btw.
  3. Draai php artisan route:list en zoek je routes op.

Typische fouten

  • No application encryption key has been specified: draai php artisan key:generate.
  • View not found: controleer de bestandsnaam: totaal.blade.php, en view('totaal') zonder extensie.
  • Wijziging in .env werkt niet: stop de server en start hem opnieuw, of draai php 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.