馃Ь 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.');
}
馃帹 Vista del formulario en el frontend
As铆 se ver谩 el formulario en tu aplicaci贸n Laravel una vez renderizado:
馃摎 En resumen:
- Usa
@csrfen 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.
0 Comentarios
Si desea contactar comigo, lo puede hacer atravez deste formulario gracias