Controllers i Laravel er klasser ansvarlige for å håndtere applikasjonslogikken og lette samspillet mellom modeller og visninger. Controllers bidra til å skille applikasjonslogikken fra brukergrensesnittet, og skape en klar og vedlikeholdbar prosjektstruktur.
Opprett kontroller
For å lage en kontroller i Laravel kan du bruke Laravel Artisan-kommandoen. For å lage en kontroller som heter UserController
, kan du for eksempel kjøre følgende kommando i terminalen:
php artisan make:controller UserController
Når kontrolleren er opprettet, kan du definere håndteringsmetoder i kontrolleren. I metoden kan du for eksempel index()
hente data fra en modell og sende dem til en visning for 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 eksemplet ovenfor bruker vi User
modellen til å hente brukerdata fra databasen. Vi sender deretter disse dataene til visningen users.index
for å vise en liste over brukere.
Controllers støtter også metoder som store()
, update()
, og delete()
for å håndtere dataoppretting, oppdatering og sletting. Du kan samhandle med databasen gjennom disse metodene.
HUser controller
inn route
For å bruke en controller
i route
kan du spesifisere controller
navnet og den tilsvarende metoden i routes/web.php
filen.
use App\Http\Controllers\UserController;
Route::get('/users', [UserController::class, 'index']);
I dette eksemplet, når en bruker får tilgang til /users
URL-en, Laravel vil han kalle index()
metoden i for å UserController
håndtere forespørselen.
Opprett en visning for brukerlisteskjermen
For å lage users.index
filen kan du bruke følgende kommando:
php artisan make:view users.index
Denne kommandoen vil opprette en index.blade.php
fil i resources/views/users
katalogen.
Når filen er opprettet, kan du åpne index.blade.php
filen og designe grensesnittet for users.index
siden. Du kan bruke Blade-syntaks til å lage HTML-strukturen og vise data fra kontrolleren.
<!-- 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 bruker vi oppsettet app.blade.php
gjennom @extends('layouts.app')
. Innholdet på siden er definert innenfor @section('content')
og viser en liste over brukere fra variabelen $users
i en @foreach
løkke.
For å bruke users.index
siden må du definere den tilsvarende ruten i filen routes/web.php
for å peke på metoden i kontrolleren og returnere visningen users.index
.
Oppsummert, controllers hjelpe Laravel skille applikasjonslogikken og håndtere databehandling. Ved å bruke controllers kan du bygge kraftige og vedlikeholdbare applikasjoner i Laravel.