Laravel - Validazione
La convalida è l'aspetto più importante durante la progettazione di un'applicazione. Convalida i dati in arrivo. Per impostazione predefinita, la classe controller di base utilizza un fileValidatesRequests caratteristica che fornisce un metodo conveniente per convalidare le richieste HTTP in arrivo con una varietà di potenti regole di convalida.
Regole di convalida disponibili in Laravel
Laravel verificherà sempre la presenza di errori nei dati della sessione e li collegherà automaticamente alla vista se disponibili. Quindi, è importante notare che a$errors sarà sempre disponibile in tutte le tue visualizzazioni ad ogni richiesta, permettendoti di assumere comodamente la $errorsvariabile è sempre definita e può essere utilizzata in sicurezza. La tabella seguente mostra tutte le regole di convalida disponibili in Laravel.
Regole di convalida disponibili in Laravel | ||
---|---|---|
Accettato | URL attivo | Dopo (data) |
Alfa | Alpha Dash | Alfanumerico |
Vettore | Prima del (Data) | Fra |
Booleano | Confermato | Data |
Formato data | Diverso | Cifre |
Cifre tra | Esiste (database) | |
File immagine) | In | Numero intero |
Indirizzo IP | JSON | Max |
Tipi MIME (file) | Min | Non in |
Numerico | Espressione regolare | necessario |
Richiesto If | Richiesto a meno che | Richiesto con |
Richiesto con tutti | Richiesto senza | Richiesto senza tutto |
Stesso | Taglia | Corda |
Fuso orario | Unico (database) | URL |
Il $errors variabile sarà un'istanza di Illuminate\Support\MessageBag. Il messaggio di errore può essere visualizzato nel file di visualizzazione aggiungendo il codice come mostrato di seguito.
@if (count($errors) > 0)
<div class = "alert alert-danger">
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
Esempio
Step 1 - Crea un controller chiamato ValidationController eseguendo il seguente comando.
php artisan make:controller ValidationController --plain
Step 2 - Dopo aver eseguito con successo, riceverai il seguente output -
Step 3 - Copia il seguente codice in formato
app/Http/Controllers/ValidationController.php file.
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 file di visualizzazione chiamato resources/views/login.blade.php e copia il codice seguente in quel file.
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 - Aggiungi le seguenti righe app/Http/routes.php.
app/Http/routes.php
Route::get('/validation','[email protected]');
Route::post('/validation','[email protected]');
Step 6 - Visita il seguente URL per testare la convalida.
http://localhost:8000/validation
Step 7 - Fare clic su “Login”senza inserire nulla nel campo di testo. L'output sarà come mostrato nell'immagine seguente.