Controllers i Laravel- Håndtering af applikationslogik og datainteraktioner

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.