馃Ь Crear formularios din谩micos con Blade

馃Ь Crear formularios din谩micos con Blade

Aprende a crear formularios potentes y reutilizables en Laravel

Laravel y su motor de plantillas Blade facilitan la creaci贸n de formularios din谩micos, reutilizables y totalmente integrados con las funcionalidades del framework. En esta lecci贸n aprender谩s c贸mo generar formularios con Blade, usar directivas espec铆ficas y conectar los datos enviados con tus controladores y modelos.

馃摌 ¿Qu茅 es un formulario din谩mico?

Un formulario din谩mico es aquel que puede adaptarse seg煤n las condiciones del sistema, como mostrar campos adicionales seg煤n el rol del usuario, valores precargados o listas desplegables basadas en informaci贸n de la base de datos.

⚙️ Creaci贸n b谩sica de un formulario en Blade

En Laravel, los formularios se pueden construir manualmente o con la ayuda de las directivas de Blade:


<form action="{{ route('usuarios.store') }}" method="POST">
  @csrf
  <div class="mb-3">
    <label for="nombre" class="form-label">Nombre:</label>
    <input type="text" name="nombre" id="nombre" class="form-control" required>
  </div>

  <div class="mb-3">
    <label for="email" class="form-label">Correo electr贸nico:</label>
    <input type="email" name="email" id="email" class="form-control" required>
  </div>

  <button type="submit" class="btn btn-success">Guardar</button>
</form>
  

La directiva @csrf genera autom谩ticamente un token de seguridad contra ataques CSRF. Es obligatoria en cualquier formulario que env铆e datos por POST.

馃 Formularios din谩micos basados en condiciones

Con Blade puedes mostrar u ocultar campos f谩cilmente seg煤n condiciones l贸gicas. Por ejemplo, si un usuario tiene un rol espec铆fico:


@if(auth()->user()->isAdmin())
  <div class="mb-3">
    <label for="rol" class="form-label">Rol de usuario:</label>
    <select name="rol" id="rol" class="form-select">
      <option value="admin">Administrador</option>
      <option value="editor">Editor</option>
      <option value="usuario">Usuario</option>
    </select>
  </div>
@endif
  

馃攧 Formularios reutilizables con componentes Blade

Laravel permite crear componentes de formulario para no repetir c贸digo. Por ejemplo, puedes definir un componente input.blade.php:


<div class="mb-3">
  <label for="{{ $id }}" class="form-label">{{ $label }}</label>
  <input type="{{ $type }}" name="{{ $name }}" id="{{ $id }}" 
         class="form-control" value="{{ old($name, $value ?? '') }}" />
</div>
  

Y luego utilizarlo as铆:


<x-input name="nombre" label="Nombre completo" id="nombre" type="text" />
<x-input name="email" label="Correo" id="email" type="email" />
  

Estos componentes te permiten mantener tus formularios m谩s ordenados, legibles y f谩ciles de mantener.

馃捑 Conectando el formulario con el controlador

En el controlador, puedes procesar los datos enviados con una estructura muy simple:


public function store(Request $request)
{
    $validated = $request->validate([
        'nombre' => 'required|string|max:255',
        'email' => 'required|email|unique:usuarios'
    ]);

    Usuario::create($validated);

    return redirect()->route('usuarios.index')
                     ->with('success', 'Usuario creado correctamente.');
}
  
Consejo: Combina formularios din谩micos con la validaci贸n de Laravel para obtener una experiencia fluida y segura.

馃帹 Vista del formulario en el frontend

As铆 se ver谩 el formulario en tu aplicaci贸n Laravel una vez renderizado:

馃摎 En resumen:

  • Usa @csrf en todos tus formularios.
  • Blade permite mostrar campos condicionales f谩cilmente.
  • Los componentes Blade simplifican la reutilizaci贸n de formularios.
  • Valida siempre los datos antes de guardarlos en la base de datos.

Publicar un comentario

0 Comentarios