Controllers in Laravel- Gestione della logica applicativa e delle interazioni dati

Controllers in Laravel sono classi responsabili della gestione della logica dell'applicazione e della facilitazione dell'interazione tra modelli e viste. Controllers aiuta a separare la logica dell'applicazione dall'interfaccia utente, creando una struttura di progetto chiara e gestibile.

 

Crea controllore

Per creare un controller in Laravel, puoi utilizzare Laravel il comando Artisan di. Ad esempio, per creare un controller denominato UserController, puoi eseguire il seguente comando nel terminale:

php artisan make:controller UserController

Una volta creato il controller, è possibile definire i metodi di gestione all'interno del controller. Ad esempio, nel index() metodo è possibile recuperare i dati da un modello e passarli a una vista per la visualizzazione:

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  
}  

Nell'esempio precedente, utilizziamo il User modello per recuperare i dati dell'utente dal database. Quindi passiamo questi dati alla users.index vista per visualizzare un elenco di utenti.

Controllers supportano anche metodi come store(), update() e delete() per gestire la creazione, l'aggiornamento e l'eliminazione dei dati. È possibile interagire con il database attraverso questi metodi.

 

HUsing controller in route

Per utilizzare a controller in route, è possibile specificare il controller nome e il metodo corrispondente nel routes/web.php file.

use App\Http\Controllers\UserController;  
  
Route::get('/users', [UserController::class, 'index']);  

In questo esempio, quando un utente accede all'URL /users, Laravel chiamerà il index() metodo in UserController per gestire la richiesta.

 

Creare una vista per la schermata dell'elenco utenti

Per creare il users.index file, puoi usare il seguente comando:

php artisan make:view users.index

Questo comando creerà un index.blade.php file nella resources/views/users directory.

Una volta creato il file, puoi aprirlo index.blade.php e progettare l'interfaccia per la users.index pagina. È possibile utilizzare la sintassi Blade per creare la struttura HTML e visualizzare i dati dal controller.

<!-- 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  

Nell'esempio sopra, usiamo il app.blade.php layout attraverso @extends('layouts.app'). Il contenuto della pagina è definito all'interno @section('content') e visualizza un elenco di utenti dalla $users variabile all'interno di un @foreach ciclo.

Per utilizzare la users.index pagina, è necessario definire la route corrispondente nel routes/web.php file per puntare al metodo nel controller e restituire la users.index vista.

 

In sintesi, controllers in Laravel aiuto separare la logica dell'applicazione e gestire l'elaborazione dei dati. Utilizzando controllers, puoi creare applicazioni potenti e gestibili in Laravel.