Controllers in Laravel- Hantera applikationslogik och datainteraktioner

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.