Controllers Inleiding Je hebt een nieuwe View en Route gemaakt. De view laat statische data zien (= niet uit de database). Als we data uit de database willen tonen (=dynamische data) dan hebben we net als in Yii de controller nodig. Dit is een lang verhaal waarin MVC en het nut van een controller wordt uitgelegd. We hebben dit ook gehad bij Yii, maar het is belangrijk dat je precies weet wat een controller en een view doet. Lees dit stuk dus goed door. Wat is een Controller? Een Controller zorgt ervoor dat de V iew requests kan ontvangen en/of versturen naar de database . Deze structuur noemen we ook wel een ModelViewController ( MVC ).  Wat is een MVC? De MVC is een basis software architectuur waardoor je makkelijk en overzichtelijk projecten kunt bouwen. Het MVC model maakt elke code los om een specifieke taak uit te voeren. Daardoor is bekend wat elk onderdeel doet en bij bugs is het makkelijk te zien waar het probleem zit. De MVC architectuur wordt ook gebruikt in andere frameworks. Wat doet een MVC? De acties bij een MVC kun je vergelijken met een restaurant.  Scenario: Het restaurant (MVC): Het restaurant is de MVC architectuur. Zij zorgen er allemaal voor dat het restaurant (in webdevelopment, de site) soepeltjes verloopt en dat alle bestellingen worden uitgevoerd. De klant (View) De klant is de View . Zij zijn technisch gezien de front-end en zijn verantwoordelijk wat jij op jouw browser te zien krijgt. Dit zijn de klanten van het restaurant. Zij willen graag  pizza en  pasta bestellen. Zij voeren een GET request uit: Request - GET: items: {'pizza', 'pasta'} Onthouden! Alle Views staan in het mapje /resources/views/ met als filenaam filenaam .blade.php . De ober (Controller) De ober is de Controller . Zij zijn verantwoordelijk voor het communiceren tussen de View (klant) en  Model (keuken). Je kan ze zien als de tussenpersoon. Dit is de ober. De ober heeft de bestelling ( GET request) ontvangen en zorgt ervoor dat dit gecommuniceerd wordt naar de keuken . Hieronder zie je hoe een Controller te werk gaat in Laravel: //De class Controller is de ober class OberController extends Controller {   //Een ober heeft als functie om gerechten op te halen van de Keuken   public function getDishes(Request $request){         //De GET request (pizza & pasta) is wat de Controller (ober) gekregen heeft van de View (klant)         //(zie dit hetzelfde als een $_GET)       $bestellingen = $request->query('items');             //De Controller (ober) vraagt aan de Model (keuken) om de gerechten te maken en het uit te voeren         $gerechten = Keuken::maakGerechten($bestellingen)->get();               //De Controller (ober) geeft het gerecht aan de klant (View)         return view('klant', compact('gerechten'));   } } De keuken (Model) De keuken is de Model . Zij zijn verantwoordelijk dat ze de taken van de controller uitvoeren en dit te communiceren met de  database .  Dit is de keuken. Ze hebben een taak van de ober ontvangen om de gerechten te maken en te geven aan de ober.. Hoe maak je een Controller? Nu je weet wat een controller doet, gaan we er eentje maken. Dat gaat heel simpel! Een controller maken kan je makkelijk met een commando via de terminal maken: php artisan make:controller Jouwvoornaam Controller Let op dat Jouwvoornaam met ene hoofdletter begint! Voer het commando uit. Jouw Controller is nu aangemaakt! Je kan jouw gemaakte Controller terugzien in de map app/Http/Controllers met de naam  Jouwvoornaam Controller.php Als je de file opent, zie je deze code: