Controllers i Laravel är klasser ansvariga för att hantera applikationslogiken och underlätta interaktionen mellan modeller och vyer. Controllers hjälpa till att skilja applikationslogiken från användargränssnittet, skapa en tydlig och underhållbar projektstruktur.
Skapa kontroller
För att skapa en kontroller i Laravel kan du använda Laravel kommandot Artisan. Till exempel, för att skapa en kontroller som heter UserController
, kan du köra följande kommando i terminalen:
php artisan make:controller UserController
När styrenheten har skapats kan du definiera hanteringsmetoder inom styrenheten. I metoden kan du till exempel index()
hämta data från en modell och skicka den till en vy för 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 exemplet ovan använder vi User
modellen för att hämta användardata från databasen. Vi skickar sedan dessa data till vyn users.index
för att visa en lista över användare.
Controllers stöder även metoder som, , store()
och update()
för delete()
att hantera dataskapande, uppdatering och radering. Du kan interagera med databasen genom dessa metoder.
HUsar controller
in route
För att använda en controller
in route
kan du ange controller
namnet och motsvarande metod i routes/web.php
filen.
use App\Http\Controllers\UserController;
Route::get('/users', [UserController::class, 'index']);
I det här exemplet, när en användare kommer åt /users
URL:en, Laravel anropar index()
metoden i för UserController
att hantera begäran.
Skapa en vy för användarlistans skärm
För att skapa users.index
filen kan du använda följande kommando:
php artisan make:view users.index
Detta kommando skapar en index.blade.php
fil i resources/views/users
katalogen.
När filen har skapats kan du öppna index.blade.php
filen och designa gränssnittet för users.index
sidan. Du kan använda Blade-syntax för att skapa HTML-strukturen och visa data från styrenheten.
<!-- 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 exemplet ovan använder vi layouten app.blade.php
genom @extends('layouts.app')
. Innehållet på sidan definieras inom @section('content')
och visar en lista över användare från $users
variabeln i en @foreach
loop.
För att använda users.index
sidan måste du definiera motsvarande rutt i filen routes/web.php
för att peka på metoden i styrenheten och returnera users.index
vyn.
Sammanfattningsvis, controllers hjälp Laravel att separera applikationslogiken och hantera databehandling. Genom att använda controllers kan du bygga kraftfulla och underhållbara applikationer i Laravel.