Controllers i Laravel er klasser ansvarlige for at håndtere applikationslogikken og lette interaktionen mellem modeller og visninger. Controllers hjælpe med at adskille applikationslogikken fra brugergrænsefladen og skabe en klar og vedligeholdelig projektstruktur.
Opret controller
For at oprette en controller i Laravel kan du bruge Laravel 's Artisan kommando. For at oprette en controller ved navn UserController
, kan du for eksempel køre følgende kommando i terminalen:
php artisan make:controller UserController
Når controlleren er oprettet, kan du definere håndteringsmetoder i controlleren. I metoden kan du f.eks. index()
hente data fra en model og sende dem til en visning til visning:
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
}
I ovenstående eksempel bruger vi User
modellen til at hente brugerdata fra databasen. Vi sender derefter disse data til visningen users.index
for at vise en liste over brugere.
Controllers understøtter også metoder som store()
, update()
, og delete()
til at håndtere dataoprettelse, opdatering og sletning. Du kan interagere med databasen gennem disse metoder.
HUser controller
ind route
For at bruge en controller
in route
kan du angive controller
navnet og den tilsvarende metode i routes/web.php
filen.
use App\Http\Controllers\UserController;
Route::get('/users', [UserController::class, 'index']);
I dette eksempel, når en bruger får adgang til URL'en /users
, Laravel vil han kalde index()
metoden i for UserController
at håndtere anmodningen.
Opret en visning til brugerlisteskærmen
For at oprette users.index
filen kan du bruge følgende kommando:
php artisan make:view users.index
Denne kommando vil oprette en index.blade.php
fil i resources/views/users
mappen.
Når filen er oprettet, kan du åbne index.blade.php
filen og designe grænsefladen til users.index
siden. Du kan bruge Blade-syntaks til at oprette HTML-strukturen og vise data fra controlleren.
<!-- 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
I eksemplet ovenfor bruger vi layoutet app.blade.php
gennem @extends('layouts.app')
. Indholdet på siden er defineret inden for @section('content')
og viser en liste over brugere fra $users
variablen i en @foreach
løkke.
For at bruge users.index
siden skal du definere den tilsvarende rute i filen routes/web.php
for at pege på metoden i controlleren og returnere visningen users.index
.
Sammenfattende hjælper controllers vi Laravel med at adskille applikationslogikken og håndtere databehandling. Ved at bruge controllers kan du bygge kraftfulde og vedligeholdelige applikationer i Laravel.