Laravel | Reglas de validación

La validación de los datos que provienen del extremo del usuario es muy importante, ya que puede ayudar al usuario a completar los datos adecuados y evitar que envíe una solicitud incorrecta o maliciosa.

En Laravel, hay reglas de validación que son reglas predefinidas, que cuando se usan en la aplicación Laravel. Hay una lista de reglas que se pueden usar para validar los datos enviados por el usuario.

Formulario Laravel con reglas de validación y mensajes de error predeterminados

  • Sintaxis 1: Reglas de validación básicas
    $request->validate([
      'password' => 'required|min:8|max:255',
    ]);
    
  • Sintaxis 2: también puede especificar las reglas en forma de array como se muestra a continuación.
    $request->validate([
      'password' => ['required', 'min:8', 'max:255'],
    ]);
    
  • Sintaxis 3: puede especificar varios campos de validación.
    $request->validate([
      'password' => 'required|min:8|max:255',
    ],
    [
      'name' => ['required', 'min:5', 'max:255'],
    ]);
    
  • Ejemplo:
    1. Cree un archivo de vista en el directorio ‘ resources/views ‘ con el nombre ‘ login.blade.php ‘ y escriba el siguiente código en ese archivo.

      <!DOCTYPE html>
      <html>
        
      <head>
          <title>GeeksforGeeks</title>
          <style>
              input {
                  font-size: 18px;
                  padding: 5px 8px;
                  margin: 10px;
              }
                
              .error {
                  color: red;
                  font-size: 18px;
              }
          </style>
      </head>
        
      <body>
          <form method="post" action="/login">
              @csrf
              <input type="text" name="username" 
                     placeholder="Enter Username">
              <br>
              <input type="password" name="password" 
                     placeholder="Enter Password">
              <br>
              <input type="submit" name="submit" 
                     value="Submit">
          </form>
          <ul class="error">
              @foreach($errors->all() as $error)
              <li>{{ $error }}</li>
              @endforeach
          </ul>
      </body>
        
      </html>

      Aquí, estamos recorriendo todos los mensajes de error de validación en la variable ‘ $errors ‘ usando la directiva ‘ @foreach ‘.

    2. Cree un controlador en el directorio ‘ app/Http/Controllers ‘ con el nombre ‘ LoginController.php ‘. Use el comando ‘ php artesanal make:controller LoginController ‘ para crear este controlador. Escriba el siguiente código de validación para validar los datos enviados por el formulario.

      <?php
        
      namespace App\Http\Controllers;
        
      use Illuminate\Http\Request;
        
      class LoginController extends Controller {
          public function getValidate() {
              return view('login');
          }
        
          public function postValidate(Request $request) {
              $request->validate([
                  'username' => 'required',
                  'password' => 'required|min:8|max:255',
              ]);
          }
      }

      Aquí, ‘ requerido ‘ es dar al usuario un error cuando el usuario deja el campo vacío. Y ‘ min ‘ es para caracteres mínimos y ‘ max ‘ es para caracteres máximos que se pueden ingresar.

    3. Escriba el siguiente código en el archivo ‘ web.php ‘ en el directorio ‘ routes ‘.
      Route::get('login', 'LoginController@getValidate');
      Route::post('login', 'LoginController@postValidate');
      

      Aquí, hemos especificado el método ‘ get ‘ para mostrar la vista de nuestra página de inicio de sesión y el método ‘ post ‘ para validar los datos de entrada enviados por el usuario a través del formulario HTML.

  • Producción:

    Obtenemos el resultado como se muestra arriba cuando hacemos clic en el botón Enviar en el formulario. Da estas dos líneas de error para el campo de entrada vacío ya que hemos establecido estos dos campos como requeridos usando la regla de validación ‘ requerida ‘ en la función ‘ postValidate ‘ en el paso 2 .

    Estos son mensajes de error predeterminados que muestra Laravel.

Formulario Laravel con reglas de validación y mensajes de error personalizados

  • Sintaxis:
    $validateData = $request->validate([
        ‘password’ => ‘required|min:8|max:255’
    ], [
        ‘password.required’ => ‘The password field is required.’,
        ‘password.min’ => ‘The password must have at list 8 characters.’,
        ‘password.max’ => ‘The password cannot exceed 255 characters.’,
    ]);
    
  • Ejemplo:
    1. Cree un archivo de vista en el directorio ‘ resources/views ‘ con el nombre ‘ login.blade.php ‘ y escriba el siguiente código en ese archivo.

      <!DOCTYPE html>
      <html>
        
      <head>
          <title>GeeksforGeeks</title>
          <style>
              input {
                  font-size: 18px;
                  padding: 5px 8px;
                  margin: 10px;
              }
                
              .error {
                  color: red;
                  font-size: 18px;
              }
          </style>
      </head>
        
      <body>
          <form method="post" action="/login">
              @csrf
              <input type="text" name="username"
                     placeholder="Enter Username">
              <br>
              <input type="password" name="password" 
                     placeholder="Enter Password">
              <br>
              <input type="submit" name="submit" 
                     value="Submit">
          </form>
          <ul class="error">
              @foreach($errors->all() as $error)
              <li>{{ $error }}</li>
              @endforeach
          </ul>
      </body>
        
      </html>

      Aquí, estamos recorriendo todos los mensajes de error de validación en la variable ‘ $errors ‘ usando la directiva ‘ @foreach ‘.

    2. Cree un controlador en el directorio ‘ app/Http/Controllers ‘ con el nombre ‘ LoginController.php ‘. Use el comando ‘ php artesanal make:controller LoginController ‘ para crear este controlador. Escriba el siguiente código de validación para validar los datos enviados por el formulario.

      <?php
        
      namespace App\Http\Controllers;
        
      use Illuminate\Http\Request;
        
      class LoginController extends Controller {
          public function getValidate() {
              return view('login');
          }
        
          public function postValidate(Request $request) {
              $request->validate([
                  'username' => 'required',
                  'password' => 'required|min:8|max:255',
              ], [
                  'username.required' => 'Username field cannot be empty.',
                  'password.required' => 'Password field cannot be empty.',
                  'password.min' => 
                    'Password must contain at least 8 characters or more.',
                  'password.max' => 
                                'Password must not exceed 255 characters.',
              ]);
          }
      }

      En la primera array, ‘ requerido ‘ es para dar al usuario un error cuando el usuario deja el campo vacío. Y ‘ min ‘ es para caracteres mínimos y ‘ max ‘ es para caracteres máximos que se pueden ingresar.

      En la segunda array, hemos especificado el mensaje de error que queremos que se muestre cuando se verifica una regla de validación y se encuentra como verdadera. Eso significa que cuando el campo de nombre de usuario se deja vacío , se mostrará el mensaje de error para ‘ nombre de usuario.requerido’ y es el mismo para todos los demás. Debido a esto, debemos especificar el mensaje de error personalizado para todas las reglas de validación que hemos especificado.

      Entonces, como puede ver en el código anterior, hemos especificado 4 reglas de validación y es por eso que tenemos 4 mensajes de error especificados en la segunda array.

    3. Escriba el siguiente código en el archivo ‘ web.php ‘ en el directorio ‘ routes ‘.
      Route::get('login', 'LoginController@getValidate');
      Route::post('login', 'LoginController@postValidate');
      

      Aquí, hemos especificado el método ‘ get ‘ para mostrar la vista de nuestra página de inicio de sesión y el método ‘ post ‘ para validar los datos de entrada enviados por el usuario a través del formulario HTML.

  • Producción:

    Obtenemos el resultado como se muestra arriba cuando hacemos clic en el botón Enviar en el formulario. Da estas dos líneas de error para el campo de entrada vacío ya que hemos establecido estos dos campos como requeridos usando la regla de validación ‘ requerida ‘ en la función ‘ postValidate ‘ en el paso 2 .

    Estos son mensajes de error personalizados que hemos establecido en el paso 2 en ‘ postValidate ‘.

Referencia: https://laravel.com/docs/6.x/validation

Publicación traducida automáticamente

Artículo escrito por aakashpawar1999 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *