Validando vários uploads de arquivos com o Laravel 4
Como faço para validar uma matriz de arquivos enviados no Laravel 4? Eu configurei-o no formulário para permitir múltiplos arquivos, e testei que os arquivos existem no array Input :: file ('files'). Mas como eu valido cada arquivo?
Aqui está o que eu tentei:
$notesData = array(
'date' => Input::get('date'),
'files' => Input::file('files')
);
// Declare the rules for the form validation.
$rules = array(
'date' => 'Required|date_format:Y-m-d',
'files' => 'mimes:jpeg,bmp,png,pdf,doc'
);
// Validate the inputs.
$validator = Validator::make($notesData, $rules);
// Check if the form validates with success.
if ($validator->passes())
{
// Redirect to homepage
return Redirect::to('')->with('success', 'Validation passed!');
}
// Something went wrong.
return Redirect::to(URL::previous())->withErrors($validator)->withInput(Input::all());
Eu esperava que o Validator se queixasse de passar uma série de arquivos dentro da matriz de dados, mas acabou de passar a validação, embora o arquivo que enviei fosse um mp3. Quando tentei carregar vários arquivos, ocorreu um erro não relacionado de que o campo de data é obrigatório (embora o campo de data tenha sido preenchido automaticamente).
Eu sou muito novo no Laravel. O que eu poderia fazer para conseguir isso funcionar?
ATUALIZAÇÃO: Eu descobri que parte do problema era meu upload_max_filesize e post_max_size, que eu consertei. Eu também tentei adicionar dinamicamente os arquivos aos arrays da seguinte forma:
$notesData = array(
'date' => Input::get('date')
);
$i=0;
foreach(\Input::file('files') as $file){
$notesData['file'.++$i] = $file;
}
// Declare the rules for the form validation.
$rules = array(
'date' => 'Required|date_format:Y-m-d'
);
for($j=1; $j<=$i; $j++){
$rules['file'.$j] ='mimes:jpeg,bmp,png,doc';
}
Mas agora estou recebendo o seguinte erro:
Serialização de 'Symfony \ Component \ HttpFoundation \ File \ UploadedFile' não é permitida
E eu estou perdido. Alguma ideia de como consertar isso?