Controllers i Laravel- Håndtering av applikasjonslogikk og datainteraksjoner

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.