✅ Validación de formularios en Laravel

✅ Validación de formularios en Laravel

La validación de formularios es una parte esencial en cualquier aplicación web, ya que garantiza que los datos enviados por los usuarios sean correctos, seguros y coherentes. Laravel proporciona un sistema de validación simple, poderoso y personalizable que se integra directamente con los controladores y las peticiones HTTP.

🧾 1️⃣ Validación básica desde el controlador

La forma más sencilla de validar un formulario es usando el método validate() dentro de un controlador. Supongamos que tenemos un formulario para registrar un usuario:

// app/Http/Controllers/UsuarioController.php
public function store(Request $request)
{
    $validated = $request->validate([
        'nombre' => 'required|min:3|max:50',
        'email' => 'required|email|unique:users,email',
        'password' => 'required|min:6|confirmed',
    ]);

    // Si la validación pasa, continúa el proceso
    User::create($validated);

    return redirect()->back()->with('success', 'Usuario registrado correctamente');
}
        

Laravel automáticamente redirige al usuario de vuelta con los errores de validación y mantiene los datos del formulario antiguos.

🎯 2️⃣ Mostrando errores en la vista Blade

En tu vista Blade puedes mostrar los mensajes de error con la variable $errors que Laravel genera automáticamente:


@if ($errors->any())
    
    @foreach ($errors->all() as $error)
  • {{ $error }}
  • @endforeach
@endif

Así cada vez que haya un error de validación, el usuario lo verá de forma clara y automática.

⚙️ 3️⃣ Validación con Form Request

Laravel permite separar las reglas de validación en clases dedicadas llamadas Form Requests, lo que ayuda a mantener el código limpio y organizado.

php artisan make:request StoreUsuarioRequest
        

Esto crea una clase en app/Http/Requests/. Dentro puedes definir tus reglas y mensajes personalizados:

// app/Http/Requests/StoreUsuarioRequest.php
public function rules()
{
    return [
        'nombre' => 'required|min:3|max:50',
        'email' => 'required|email|unique:users,email',
        'password' => 'required|min:6|confirmed',
    ];
}

public function messages()
{
    return [
        'nombre.required' => 'El campo nombre es obligatorio.',
        'email.unique' => 'Este correo ya está registrado.',
    ];
}
        

Luego, en tu controlador simplemente inyectas la clase en lugar de Request:

public function store(StoreUsuarioRequest $request)
{
    User::create($request->validated());
    return redirect()->back()->with('success', 'Usuario creado correctamente');
}
        

🔍 4️⃣ Reglas de validación comunes

Laravel incluye una gran variedad de reglas ya preparadas:

  • required → campo obligatorio
  • email → formato de correo válido
  • min:x / max:x → longitud mínima o máxima
  • unique:tabla,columna → valor único en la base de datos
  • confirmed → requiere un campo con sufijo _confirmation
  • numeric, date, boolean, etc.

✅ Conclusión

  • Laravel simplifica la validación con reglas legibles y mensajes automáticos.
  • Los errores se gestionan fácilmente desde las vistas Blade.
  • Las clases Form Request son ideales para mantener controladores limpios.
  • Una validación sólida protege tu aplicación y mejora la experiencia del usuario.


Publicar un comentario

0 Comentarios