Laravel - Validación

La validación es el aspecto más importante al diseñar una aplicación. Valida los datos entrantes. Por defecto, la clase de controlador base usa unValidatesRequests rasgo que proporciona un método conveniente para validar las solicitudes HTTP entrantes con una variedad de poderosas reglas de validación.

Reglas de validación disponibles en Laravel

Laravel siempre buscará errores en los datos de la sesión y los vinculará automáticamente a la vista si están disponibles. Por tanto, es importante tener en cuenta que$errors La variable siempre estará disponible en todas sus vistas en cada solicitud, lo que le permitirá asumir convenientemente la $errorsLa variable siempre está definida y se puede utilizar de forma segura. La siguiente tabla muestra todas las reglas de validación disponibles en Laravel.

Reglas de validación disponibles en Laravel
Aceptado URL activa Después de (fecha)
Alfa Alpha Dash Alfanumérico
Formación Antes (fecha) Entre
Booleano Confirmado Fecha
Formato de fecha Diferente Dígitos
Dígitos entre Correo electrónico Existe (base de datos)
Archivo de imagen) En Entero
Dirección IP JSON Max
Tipos MIME (archivo) Min No en
Numérico Expresión regular Necesario
Requerido si Requerido a menos Requerido con
Requerido con todos Requerido sin Requerido sin todo
Mismo Talla Cuerda
Zona horaria Único (base de datos) URL

los $errors variable será una instancia de Illuminate\Support\MessageBag. El mensaje de error se puede mostrar en el archivo de vista agregando el código como se muestra a continuación.

@if (count($errors) > 0)
   <div class = "alert alert-danger">
      <ul>
         @foreach ($errors->all() as $error)
            <li>{{ $error }}</li>
         @endforeach
      </ul>
   </div>
@endif

Ejemplo

Step 1 - Crea un controlador llamado ValidationController ejecutando el siguiente comando.

php artisan make:controller ValidationController --plain

Step 2 - Después de una ejecución exitosa, recibirá el siguiente resultado:

Step 3 - Copie el siguiente código en

app/Http/Controllers/ValidationController.php archivo.

app/Http/Controllers/ValidationController.php

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;

class ValidationController extends Controller {
   public function showform() {
      return view('login');
   }
   public function validateform(Request $request) {
      print_r($request->all());
      $this->validate($request,[
         'username'=>'required|max:8',
         'password'=>'required'
      ]);
   }
}

Step 4 - Crea un archivo de vista llamado resources/views/login.blade.php y copie el siguiente código en ese archivo.

resources/views/login.blade.php

<html>
   
   <head>
      <title>Login Form</title>
   </head>

   <body>
      
      @if (count($errors) > 0)
         <div class = "alert alert-danger">
            <ul>
               @foreach ($errors->all() as $error)
                  <li>{{ $error }}</li>
               @endforeach
            </ul>
         </div>
      @endif
      
      <?php
         echo Form::open(array('url'=>'/validation'));
      ?>
      
      <table border = '1'>
         <tr>
            <td align = 'center' colspan = '2'>Login</td>
         </tr>
         <tr>
            <td>Username</td>
            <td><?php echo Form::text('username'); ?></td>
         </tr>
         <tr>
            <td>Password</td>
            <td><?php echo Form::password('password'); ?></td>
         </tr>
         <tr>
            <td align = 'center' colspan = '2'
               ><?php echo Form::submit('Login'); ?  ></td>
         </tr>
      </table>
      
      <?php
         echo Form::close();
      ?>
   
   </body>
</html>

Step 5 - Agregue las siguientes líneas en app/Http/routes.php.

app/Http/routes.php

Route::get('/validation','[email protected]');
Route::post('/validation','[email protected]');

Step 6 - Visite la siguiente URL para probar la validación.

http://localhost:8000/validation

Step 7 - Haga clic en el “Login”sin ingresar nada en el campo de texto. La salida será como se muestra en la siguiente imagen.