Controllers in Laravel zijn klassen die verantwoordelijk zijn voor het hanteren van de toepassingslogica en het faciliteren van de interactie tussen modellen en weergaven. Controllers helpen de applicatielogica te scheiden van de gebruikersinterface, waardoor een duidelijke en onderhoudbare projectstructuur ontstaat.
Regelaar maken
Om een controller aan te maken in Laravel, kunt u Laravel de opdracht Artisan gebruiken. Om bijvoorbeeld een controller met de naam te maken UserController
, kunt u de volgende opdracht in de terminal uitvoeren:
php artisan make:controller UserController
Nadat de controller is gemaakt, kunt u verwerkingsmethoden binnen de controller definiëren. In de methode kunt u bijvoorbeeld index()
gegevens uit een model ophalen en doorgeven aan een weergave voor weergave:
namespace App\Http\Controllers;
use App\Models\User;
use Illuminate\Http\Request;
class UserController extends Controller
{
public function index()
{
$users = User::all();
return view('users.index', ['users' => $users]);
}
// Other handling methods
}
In bovenstaand voorbeeld gebruiken we het User
model om gebruikersgegevens uit de database op te halen. We geven deze gegevens vervolgens door aan de users.index
weergave om een lijst met gebruikers weer te geven.
Controllers ondersteunen ook methoden zoals store()
, update()
, en delete()
voor het maken, bijwerken en verwijderen van gegevens. U kunt via deze methoden communiceren met de database.
Hussing controller
in route
Om een controller
in te gebruiken route
, kunt u de controller
naam en de corresponderende methode in het routes/web.php
bestand specificeren.
use App\Http\Controllers\UserController;
Route::get('/users', [UserController::class, 'index']);
In dit voorbeeld, wanneer een gebruiker de URL opent /users
, Laravel roept hij de index()
methode in de UserController
om het verzoek af te handelen.
Maak een weergave voor het gebruikerslijstscherm
Om het users.index
bestand te maken, kunt u de volgende opdracht gebruiken:
php artisan make:view users.index
index.blade.php
Met deze opdracht wordt een bestand in de map gemaakt resources/views/users
.
Nadat het bestand is gemaakt, kunt u het index.blade.php
bestand openen en de interface voor de users.index
pagina ontwerpen. U kunt Blade-syntaxis gebruiken om de HTML-structuur te maken en gegevens van de controller weer te geven.
<!-- resources/views/users/index.blade.php -->
@extends('layouts.app')
@section('content')
<h1>Users</h1>
<ul>
@foreach($users as $user)
<li>{{ $user->name }}</li>
@endforeach
</ul>
@endsection
In bovenstaand voorbeeld gebruiken we de app.blade.php
lay-out tot en met @extends('layouts.app')
. De inhoud van de pagina wordt binnen een lus gedefinieerd @section('content')
en toont een lijst met gebruikers van de $users
variabele @foreach
.
Om de users.index
pagina te gebruiken, moet u de corresponderende route in het bestand definiëren routes/web.php
om naar de methode in de controller te verwijzen en de users.index
weergave te retourneren.
Samengevat, controllers om Laravel de applicatielogica te scheiden en de gegevensverwerking af te handelen. Door gebruik te maken van controllers, kunt u krachtige en onderhoudbare applicaties bouwen in Laravel.