2013-10-10 2 views
0

У меня есть форма, как это, что может иметь кратные изображения [] поле:Validate входной массив файл образа в Laravel 4

{{ Form::open(array('url' => 'foo/bar', 'files' => true)) }} 
    <input type="file" name="images[]"> 
{{ Form::close() }} 

Как можно проверить это поле с Laravel 4 проверки? Я попробовал это правило, но это не сработало:

$rules = array('images[]' => 'required|image'); 

ответ

2

Попробуйте что-то вроде этого:

$rules = array(
    'images'  => 'required|min:1|integerOrArray' 
); 

На основании ответа here

Используйте валидатор от here

+0

Не работает. Метод [validateIntegerOrArray] не существует. Я предполагаю, что мне придется расширить класс проверки или создать собственное правило. –

+1

Да, используйте расширенный валидатор в вопросе ссылки, которую я предоставил. См. Мой отредактированный ответ. –

+0

работает как Charm в Laravel 5.1.0 спасибо – Kavin

1

Первый из всех вы используете «изображения []» над циклом? Существует много примеров кода для laravel 4, которые на самом деле вообще не работают ... И люди, которые их написали, не знают, как использовать var_dump() ...

Если нет - вероятно, массив объектов, попробуйте проверить:

var_dump(Input::file('files')); 

Так что теперь после этой лекции, позволяет запустить цикл (имел некоторые проблемы с Еогеасп ИДК почему):

$files = Input::file('images'); 
$filesCount = count($files); 

for ($i=0; $i < $filesCount; $i++) 
{ 
    $file = $files[$i]; 
    $input = array(
     'upload' => $files[$i] 
    ); 

    $rules = array(
     'upload' => 'image|max:15500' 
    ); 
    $validation = Validator::make($input, $rules); 
} 

И теперь вы можете запустить проверку , Laravel4 только пытается использовать действительный тип mime ... поэтому он уязвим.

+0

Я думал, что есть правило, которое сделает это для меня, видимо, нет. Мне не нравится идея или выполняется проверка на цикл. Как я прокомментировал, кажется, что единственный способ - либо расширить класс проверки, либо написать собственное правило. Спасибо за Ваш ответ. –

Смежные вопросы