De kunst van blade files
Nu je een prachtige navigatiebar hebt gemaakt, zou je het dus ook op alle andere pagina's de code van de hele navigatie moeten plaatsen toch? Nou nee... Daarvoor hebben we Blades!
Wat is een Blade?
Blade is een template engine dat standaard is toegevoegd in Laravel. Je kan gemakkelijk php code in jouw .blade.php file stoppen. Ook kan je bladefiles hergebruiken in andere bladefiles. Dat betekent dus ook dat je makkelijk jouw navigatiebar kan hergebruiken!
Hoe hergebruik je jouw navigatie met Blade?
Voordat we beginnen met coderen, moet je eerst begrijpen welke syntax er is in Blade.
Zie hier: Blade Templates - Laravel - The PHP Framework For Web Artisans
Hoe gaat dit visueel te werk?
Omdat dit een beetje ingewikkeld is om in tekst uit te leggen, is hieronder een visuele overzicht hoe een herbruikbare navigatie eruit moet zien:
Wat doet elke file?
iets.blade.php
Daar plaats je gewoon jouw content neer die je op de pagina wil tonen. Daar verwijs je ook met je routes en controller naartoe!
Deze content zit om een @section
. De reden hiervoor is zodat je in een andere file deze sectie erin kan stoppen. Zoals je ziet ga je in de reusable file (reusable.blade.php) dezelfde sectie @yield
'en.
Maar om dat te kunnen doen, moet iets.blade.php file eerst aan de reusable.blade.php file worden verlengd. Dat doe je dus met @extends('naam van de file')
. In dit geval moet er dus 'reuse' staan.
reuse.blade.php
De reuse file wordt de pagina loader. Iedere keer als een wordt ingeladen, is het de bedoeling dat deze file geladen wordt door de geëxtende file (iets.blade.php
in dit geval);. Zoals je daar ziet zet je daar jouw standaard HTML structuur in.
- Je ziet
@yield('content')
. Dat is dus de section die hij pakt van de iets.blade.php. - Je ziet
@include('navigation')
. Hij zoekt naar een file dienavigation.blade.php
heet, en voegt de code toe inreuse.blade.php
file.
navigation.blade.php
Het spreekt voor zich. Jouw gemaakte navigatie moet je dus hierin zetten! Je kan ook jouw navigatie in de reuse.blade.php stoppen, maar om alles overzichtelijk te maken kan je het beste in een losse file doen.
Opdracht: maak jouw navigatie herbruikbaar!
Stappenplan:
- Open de views folder en maak een file die reuse.blade.php (officieel moet het app.blade.php heten).
- Voeg jouw standaard HTML structuur toe.
- Voeg
@include('navigation')
en@yield('content')
toe in jouw<body>
- Maak de navigatiefile en noem het naar navigation.blade.php
- Plaats jouw naviagtiebar in de file
- Ga naar jouw file waar jouw content geplaatst wordt (kies bijvoorbeeld de file waar je de navigatie van de vorige opdracht hebt gemaakt).
- Maak de file leeg en voeg
@extends('reuse')
(of officieel@extends('app')
) toe. - Voeg eronder @section en @endsection. En schrijf wat content tussenin.
- Maak de file leeg en voeg
Wat lever je in?
- Jouw
.blade.php
file met content erin - Jouw
reuse.blade.php
of app.blade.php file - Jouw
navigation.blade.php
file
Gefeliciteerd! Je hebt jouw content en navigatiebar dynamisch gemaakt met Blade!