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 E-mail 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.