1

postController中Input::all()的“dd”输出:

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"
}
}

验证:

$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 输出中看到的文件,它也始终显示该错误。

谢谢,

4

1 回答 1

4

user2413500 发现问题出在使用Input::except('_token')不包含文件对象的地方。但是,Input::all()确实包含文件对象。这似乎是我要报告的错误,但 Input::except 的定义是“全部”减去您不想要的项目。

但似乎正在发生的是“全部”减去你不想要的项目,减去你的文件!

Itrulia 和Taylor 说这不是错误

但是,当您发布 $_FILE 时,这些语句会令人困惑地不相同...

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

防范!:)

于 2013-09-10T19:18:16.483 回答