Construcción de Formularios en Laravel con Blade - Greetik Soluciones - Consultoría TIC Extremadura
programación, Laravel, PHP, blade2025-03-21 11:10:20Greetik Soluciones SL

Construcción de Formularios en Laravel con Blade

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.

1. Instalación y Configuración

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.

2. Creación de la Ruta y el Controlador

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');
    }
}

3. Definir las Rutas

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']);

4. Crear la Vista con Blade

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>

5. Explicación del Código

  • 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.

Conclusión

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!