# MVC - Controller

Je zou, in theorie, alle functionaliteit kunnen schrijven in de Routing config maar dat is niet de bedoeling. Dat is het werk van een Controller binnen een MVC framework.

Maak een nieuwe controller aan CourseController.php in de folder /app/Http/Controllers. Hierin hebben we ook methods nodig die aangeroepen kunnen worden vanuit de Routing. Plaats onderstaande code in de CourseController.php.

namespace App\Http\Controllers;


class CourseController extends Controller
{
    public function index() {
        return view('course.list');
    }

    public function detail($id) {
        return view('course.detail', [
            'course_id' => $id
        ]);
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

In de routing moeten we nu de CourseController en bijhorende method aanroepen in plaats van rechtstreeks de view.

Route::get('/courses', [CourseController::class, 'index']);
Route::get('/course/{id}', [CourseController::class, 'detail']); 
1
2

Let wel op dat je ook de namespace gaat toevoegen bovenaan de routing config.

use App\Http\Controllers\CourseController;
1

Als laatste moeten we nog de 2 views aanmaken. Zoals je kan zien roepen we deze via de CourseController op via view('course.list'). We moeten dus een nieuwe folder course aanmaken in de views folder met daarin 2 views: list.blade.php en detail.blade.php. Op die manier kunnen we onze views mooi structureren.

© 2024 Arteveldehogeschool Laatst bijgewerkt: 2/12/2023 12:23:08