Herramientas de usuario

Herramientas del sitio


informatica:programacion:php:frameworks:laravel:validacion_de_informacion

¡Esta es una revisión vieja del documento!


Validación de información en Laravel

Laravel

Siempre en el backend hay que realizar las validaciones para asegurar la consistencia y estabilidad de la información.

Reglas y validación

public function store() 
{
    // definimos las reglas
    $rules = [
        "title" => ["required", "max:255"],
        "description" => ["required", "max:1000"],
        "price" => ["required", "min:1"],
        "stock" => ["required", "min:0"],                
        "status" => ["required", "in:available,unavailable"],                        
    ];
 
    // validaciones
    request()->validate($rules);
 
    if (request()->status == 'available' && request()->stock == 0) {
        session()->flash("error", "If available must have stock");
        return redirect()->back();
    }
 
    $product = Product::create(request()->all());
    return redirect()->route("products.index");
 
}

Cuando no se cumplan las reglas, Laravel no permitirá los cambios y nos volverá al punto de partida.

Como los errores de validación no se muestra por defecto,

Mostrando errores de validación

Laravel maneja una variable global llamada $errors que utiliza para almacenar mensajes de error.

resources/views/layouts/master.blade.php:

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8" />
    <title>Laravel Shop</title>
  </head>
 
  <body>
      @if (session()->has("error"))
          <div class="alert alert-danger">
              {{ session()->get("error") }}
          </div>
      @endif
 
      @if (isset($errors) && $errors->any())
          <div class="alert alert-danger">
              <ul>
              @foreach ($errors->all() as $error)
                  <li>{{ $error }}</li>
              </ul>
          </div>      
      @endif
      @yield('content')
  </body>
</html>

Mostran la información de los formularios tras errores de validación

 
informatica/programacion/php/frameworks/laravel/validacion_de_informacion.1686497422.txt.gz · Última modificación: por tempwin