Saltar al contenido

¿Cómo validar varios correos electrónicos en la validación de laravel?

Solución:

Debe escribir un Validador personalizado, que tomará la matriz y validará cada uno de los correos electrónicos en la matriz manualmente. En Laravel 5 Request puedes hacer algo así

public function __construct() {
    Validator::extend("emails", function($attribute, $value, $parameters) {
        $rules = [
            'email' => 'required|email',
        ];
        foreach ($value as $email) {
            $data = [
                'email' => $email
            ];
            $validator = Validator::make($data, $rules);
            if ($validator->fails()) {
                return false;
            }
        }
        return true;
    });
}

public function rules() {
    return [
        'email' => 'required|emails'
    ];
}

En 5.6 o superior, puede definir su regla de validación de la siguiente manera:

'email.*' => 'required|email'

Esto esperará el email clave para ser un conjunto de direcciones de correo electrónico válidas.

Podemos lograr esto sin una validación personalizada, podemos anular un método prepareForValidation

protected function prepareForValidation() 
{
   //Here email we are reciving as comma seperated so we make it array
   $this->merge(['email' => explode(',', rtrim($this->email, ','))]);
}

Luego, la función anterior llamará automáticamente y convertirá los identificadores de correo electrónico en una matriz, después de eso, use la regla de validación de la matriz

public function rules()
 {
     return [
        'email.*' => 'required|email'
     ];
 }
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

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