Agregar regla de validación personalizada
Comprar curso

14. Agregar regla de validación personalizada

En este capítulo, se mostrará cómo agregar reglas de validación personalizadas en la aplicación de chat utilizando Laravel. Se explicará cómo crear y utilizar estas reglas para validar los datos enviados por el usuario.


2 comentarios

Inicia sesión para comentar

Comentarios:

  • Jheyner David Ibagon

    Jheyner David Ibagon hace 8 meses

    Hola a todos, para laravel el archivo que genera artisan para rules ( reglas de validacion customizadas ) ha cambiado, para esta regla de validacion puede quedar de la siguiente forma, tomando las variables en el  whereHas mediante un arrows fletch, este permite aceder al scope por fuera de la funcion.

     

    • Victor Arana Flores hace 7 meses

      Hola amigo, gracias por el aporte.

  • Francisco Javier Gil Bautista

    Francisco Javier Gil Bautista hace 1 año

    Al crear la regla en Laravel 10 la estructura es algo diferente. Asi que hice algo asi:

     

        public function validate(string $attribute, mixed $value, Closure $fail): void

        {

            $contact = Contact::where('user_id', auth()->id())

                                ->whereHas('contact', function($query) use ($value) {

                                    $query->where('email', $value);

                                });


     

            if ($contact->count() > 0) {

                $fail('Este contacto ya se ha agregado');

            }

        }

     

    Donde ‘contact’ es ‘user’. Espero les sirva.

    • Bruno Agustín Aguirre Ing.sistemas hace 9 meses

      Excelente compañero!!! muchas gracias

    • Bruno Agustín Aguirre Ing.sistemas hace 9 meses

      Solución:

       

      <?php


       

      namespace App\Rules;


       

      use App\Models\Contact;

      use Closure;

      use Illuminate\Contracts\Validation\ValidationRule;


       

      class InvalidEmail implements ValidationRule

      {

         


       

          public function validate(string $attribute, mixed $value, Closure $fail): void

          {

              $contact = Contact::where('user_id', auth()->id())


       

                  ->whereHas('user', function ($query) use ($value) {


       

                      $query->where('email', $value);

                  });





       

              if ($contact->count() > 0) {


       

                  $fail('Este contacto ya se ha agregado');

              }

          }

      }