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)