Laravel es un framework de PHP que facilita el desarrollo de aplicaciones web de manera estructurada y eficiente. Uno de los aspectos fundamentales en cualquier aplicación es la gestión de formularios. En este artículo, exploraremos cómo construir un formulario en Laravel utilizando Blade, su sistema de plantillas.
Si aún no tienes Laravel instalado, puedes instalarlo con Composer:
composer create-project --prefer-dist laravel/laravel MiProyecto
Después de la instalación, asegúrate de configurar la base de datos en el archivo .env
.
Para gestionar el formulario, primero creamos un controlador:
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class FormularioController extends Controller
{
public function mostrarFormulario()
{
return view('formulario');
}
public function procesarFormulario(Request $request)
{
$datos = $request->validate([
'nombre' => 'required|string|max:255',
'edad' => 'required|integer|min:18',
'genero' => 'required',
'suscribirse' => 'boolean',
]);
return back()->with('success', 'Formulario enviado correctamente');
}
}
En routes/web.php
, definimos las rutas para mostrar y procesar el formulario:
use App\Http\Controllers\FormularioController;
Route::get('/formulario', [FormularioController::class, 'mostrarFormulario']);
Route::post('/formulario', [FormularioController::class, 'procesarFormulario']);
Ahora creamos la vista en resources/views/formulario.blade.php
con diferentes tipos de campos:
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Formulario en Laravel</title>
</head>
<body>
<h1>Formulario de Registro</h1>
@if(session('success'))
<p style="color: green;">{{ session('success') }}</p>
@endif
<form action="{{ url('/formulario') }}" method="POST">
@csrf
<label for="nombre">Nombre:</label>
<input type="text" id="nombre" name="nombre" value="{{ old('nombre') }}">
@error('nombre') <p style="color: red;">{{ $message }}</p> @enderror
<br>
<label for="edad">Edad:</label>
<input type="number" id="edad" name="edad" value="{{ old('edad') }}">
@error('edad') <p style="color: red;">{{ $message }}</p> @enderror
<br>
<label for="genero">Género:</label>
<select id="genero" name="genero">
<option value="masculino" {{ old('genero') == 'masculino' ? 'selected' : '' }}>Masculino</option>
<option value="femenino" {{ old('genero') == 'femenino' ? 'selected' : '' }}>Femenino</option>
<option value="otro" {{ old('genero') == 'otro' ? 'selected' : '' }}>Otro</option>
</select>
@error('genero') <p style="color: red;">{{ $message }}</p> @enderror
<br>
<label>
<input type="checkbox" name="suscribirse" value="1" {{ old('suscribirse') ? 'checked' : '' }}>
Suscribirse al boletín
</label>
<br>
<button type="submit">Enviar</button>
</form>
</body>
</html>
CSRF Token (@csrf
): Laravel protege los formularios contra ataques CSRF.
Validación ($request->validate()
): Laravel valida los datos enviados.
old('campo')
: Permite mantener los valores ingresados en caso de errores.
Mensajes de error (@error
): Muestra errores de validación si existen.
Mensajes de éxito (session('success')
): Muestra un mensaje cuando el formulario se envía correctamente.
Laravel facilita la creación y validación de formularios mediante Blade y sus herramientas integradas. Con este enfoque, puedes construir formularios dinámicos y seguros con facilidad. ¡Prueba este código y adáptalo a tus necesidades!