2013-07-01 3 views
1

"дд" выход Input :: все() в PostController:Laravel Validator/Загрузил файлов проваливает Требуется

array(8) { 
["_token"]=> 
string(40) "6WZ87M1LCiVCsaUS9HbjZckRibXfF2RP69LCpW7K", 
... 
... 
["svg"]=> 
object(Symfony\Component\HttpFoundation\File\UploadedFile)#9 (7) { 
    ["test":"Symfony\Component\HttpFoundation\File\UploadedFile":private]=> 
    bool(false) 
    ["originalName":"Symfony\Component\HttpFoundation\File\UploadedFile":private]=> 
    string(39) "Screenshot from 2013-06-18 17:07:27.png" 
    ["mimeType":"Symfony\Component\HttpFoundation\File\UploadedFile":private]=> 
    string(9) "image/png" 
    ["size":"Symfony\Component\HttpFoundation\File\UploadedFile":private]=> 
    int(29747) 
    ["error":"Symfony\Component\HttpFoundation\File\UploadedFile":private]=> 
    int(0) 
    ["pathName":"SplFileInfo":private]=> 
    string(14) "/tmp/phpdRTDU7" 
    ["fileName":"SplFileInfo":private]=> 
    string(9) "phpdRTDU7" 
} 
} 

Validation:

$rules = array('svg' => 'required'); 

$check = Validator::make(Input::except('_token'), $rules); 

if($check->fails()){ 
return Redirect::back()->withErrors($check);  
}else{ 
return Redirect::back()->with('message', 'No problem'); 
} 

И я получаю ошибку сообщение:

Сообщение об ошибке: Поле svg не требуется.

Даже если я загружаю файл, как вы видите на выходе dd, он всегда показывает эту ошибку.

Спасибо,

+0

Вы добавили опцию в открытую форму? –

+0

Да, enctype = multipart/form-data. – user2413500

+0

О, проблема заключалась в использовании Input :: except() вместо all(). Я думаю, что он не содержит файлов, просто входов. Решаемые. Благодарю. :) – user2413500

ответ

4

user2413500 обнаружил, что проблема использования Input::except('_token'), которые не включают в себя файловый объект. Однако Input::all() содержит файл. Кажется, это ошибка, о которой я расскажу, но определение Input :: except - это «все» за вычетом ненужных элементов.

Но все, что происходит, это «все» за вычетом предметов, которые вы не хотите, минус ваш файл!

Итрулия и Тейлор говорят this is not a bug.

Однако эти смешения не идентичные заявления, когда у вас есть $ _FILE отправил ...

$params = Input::except('_token'); // Missing file inputs! 
$params = array_except(Input::all(), '_token'); // The current solution. 

Будьте начеку! :)

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