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.