Laravel - Formulari: Una Guida per Principianti

Ciao هناك, aspiranti sviluppatori! Come insegnante di scienze informatiche con anni di esperienza, sono entusiasta di guidarvi attraverso il mondo emozionante dei formulari Laravel. Non preoccupatevi se siete nuovi alla programmazione - inizieremo dalle basi e lavoreremo gradualmente. Alla fine di questo tutorial, sarete in grado di creare formulari come un professionista!

Laravel - Forms

Cos'è un Formulario Laravel?

Prima di immergerci nel codice, capiremo cos'è un formulario Laravel. Immagina di compilare un modulo di candidatura online - quello è un formulario! Nello sviluppo web, i formulari sono il modo in cui raccogliamo informazioni dagli utenti. Laravel, il nostro framework PHP amichevole, rende la creazione e la gestione di questi formulari un gioco da ragazzi.

Perché Usare Laravel per i Formulari?

Potresti chiederti, "Perché Laravel?" Beh, lasciami raccontarti una piccola storia. Quando ero un giovane sviluppatore (sì, allora i dinosauri dominavano la Terra), creare formulari era un processo faticoso. Ma Laravel è arrivato come un supereroe, rendendo le nostre vite molto più facili con i suoi potenti strumenti e funzionalità di sicurezza.

Iniziare

Prima di tutto, assicurati di avere Laravel installato sul tuo sistema. Se non lo hai, non preoccuparti! Basta seguire la guida ufficiale di installazione di Laravel, e sarai operativo in pochissimo tempo.

Esempio 1: Creare un Semplice Formulario di Contatto

Iniziamo con un semplice formulario di contatto. Creeremo un formulario che chiede un nome, una email e un messaggio.

Passo 1: Creare la Route

Apri il tuo file web.php nella cartella routes e aggiungi questa riga:

Route::get('/contact', 'ContactController@showForm');

Questo dice a Laravel di mostrare il nostro formulario di contatto quando qualcuno visita l'URL '/contact'.

Passo 2: Creare il Controller

Esegui questo comando nel tuo terminale:

php artisan make:controller ContactController

Ora, apri il file ContactController.php appena creato e aggiungi questo metodo:

public function showForm()
{
return view('contact');
}

Questo metodo restituirà la nostra vista del formulario di contatto.

Passo 3: Creare la View

Crea un nuovo file chiamato contact.blade.php nella cartella resources/views e aggiungi questo codice:

<form action="/submit-contact" method="POST">
@csrf
<div>
<label for="name">Nome:</label>
<input type="text" id="name" name="name" required>
</div>
<div>
<label for="email">Email:</label>
<input type="email" id="email" name="email" required>
</div>
<div>
<label for="message">Messaggio:</label>
<textarea id="message" name="message" required></textarea>
</div>
<button type="submit">Invia</button>
</form>

Ecco una spiegazione:

  • @csrf è una direttiva Laravel che aggiunge un token nascosto per prevenire gli attacchi di cross-site request forgery. Pensalo come un segno segreto tra il tuo formulario e Laravel.
  • Abbiamo creato campi di input per il nome, l'email e una textarea per il messaggio.
  • L'attributo required assicura che gli utenti compilino tutti i campi prima di inviare.

Passo 4: Gestire l'Invio del Formulario

Aggiungi una nuova route in web.php:

Route::post('/submit-contact', 'ContactController@submitForm');

Poi, aggiungi questo metodo al tuo ContactController:

public function submitForm(Request $request)
{
$validatedData = $request->validate([
'name' => 'required|max:255',
'email' => 'required|email',
'message' => 'required',
]);

// Processa i dati del formulario (es. salva nel database, invia un'email)

return redirect('/contact')->with('success', 'Grazie per il tuo messaggio!');
}

Questo metodo validates i dati del formulario e reindirizza nuovamente alla pagina di contatto con un messaggio di successo.

Esempio 2: Creare un Formulario di Registrazione

Ora che ci siamo riscaldati, creiamo un formulario di registrazione più complesso.

Passo 1: Creare la Route

Aggiungi questo alla tua web.php:

Route::get('/register', 'RegisterController@showForm');
Route::post('/register', 'RegisterController@register');

Passo 2: Creare il Controller

Esegui:

php artisan make:controller RegisterController

Aggiungi questi metodi al RegisterController:

public function showForm()
{
return view('register');
}

public function register(Request $request)
{
$validatedData = $request->validate([
'name' => 'required|max:255',
'email' => 'required|email|unique:users',
'password' => 'required|min:8|confirmed',
'date_of_birth' => 'required|date',
'gender' => 'required|in:male,female,other',
]);

// Logica di creazione dell'utente qui

return redirect('/register')->with('success', 'Registrazione avvenuta con successo!');
}

Passo 3: Creare la View

Crea register.blade.php nella tua cartella delle viste:

<form action="/register" method="POST">
@csrf
<div>
<label for="name">Nome:</label>
<input type="text" id="name" name="name" required>
</div>
<div>
<label for="email">Email:</label>
<input type="email" id="email" name="email" required>
</div>
<div>
<label for="password">Password:</label>
<input type="password" id="password" name="password" required>
</div>
<div>
<label for="password_confirmation">Conferma Password:</label>
<input type="password" id="password_confirmation" name="password_confirmation" required>
</div>
<div>
<label for="date_of_birth">Data di Nascita:</label>
<input type="date" id="date_of_birth" name="date_of_birth" required>
</div>
<div>
<label>Genere:</label>
<input type="radio" id="male" name="gender" value="male" required>
<label for="male">Maschio</label>
<input type="radio" id="female" name="gender" value="female">
<label for="female">Femmina</label>
<input type="radio" id="other" name="gender" value="other">
<label for="other">Altro</label>
</div>
<button type="submit">Registra</button>
</form>

Questo formulario include vari tipi di input: testo, email, password, data e pulsanti radio.

Metodi di Validazione Comuni

Ecco una tabella dei metodi di validazione comuni in Laravel:

Metodo Descrizione
required Il campo non deve essere vuoto
email Deve essere un indirizzo email valido
max:value Lunghezza massima
min:value Lunghezza minima
unique:table Deve essere univoco nella tabella specificata del database
confirmed Deve avere un campo corrispondente (es. password_confirmation)
date Deve essere una data valida
in:foo,bar,... Deve essere uno dei valori elencati

Conclusione

Congratulazioni! Avete appena creato due formulari Laravel e imparato come gestirli. Ricordate, la pratica rende perfetti, quindi continuate a sperimentare con diversi tipi di formulari e regole di validazione.

Mentre chiudiamo, voglio condividere una breve aneddoto. Una volta ho avuto uno studente che era terrorizzato dai formulari - pensava che fossero queste cose complesse e misteriose. Ma dopo poche lezioni, stava creando formulari per divertirsi! Questo è il fascino di Laravel - rende il complesso qualcosa di piacevole.

Continuate a programmare, rimanete curiosi e non abbiate paura di fare domande. Buon divertimento con la creazione di formulari!

Credits: Image by storyset