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.