Вам нужен специальный валидатор. В Laravel Request вы можете сделать что-то подобное
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'
];
}
или
Проверка массивов laravel 5.2 и более поздних версий:
Проверка полей ввода формы массива не должна быть проблемой. Например, чтобы проверить, что каждое электронное письмо в данном поле ввода массива уникально, вы можете сделать следующее:
$validator = Validator::make($request->all(), [
'person.*.email' => 'email|unique:users',
'person.*.first_name' => 'required_with:person.*.last_name',
]);
Аналогичным образом, вы можете использовать символ * при указании ваших проверочных сообщений в ваших языковых файлах, что упрощает использование одного проверочного сообщения для полей на основе массива:
'custom' => [
'person.*.email' => [
'unique' => 'Each person must have a unique e-mail address',
]
],
Надеюсь, это поможет вам.