“dd”输出输入:: all():
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输出上看到的那样上传文件,它也始终显示错误。
谢谢,
答案 0 :(得分:4)
user2413500发现问题是使用了不包含文件对象的Input::except('_token')
。但是,Input::all()
确实包含文件对象。这似乎是我将报告的错误,但是Input :: except的定义是“all”减去你不想要的项目。
但似乎正在发生的事情是“全部”减去你不想要的项目,减去你的文件!
Itrulia和Taylor说this is not a bug。
但是,当您发布$ _FILE时,这些容易混淆不完全相同的语句......
$params = Input::except('_token'); // Missing file inputs!
$params = array_except(Input::all(), '_token'); // The current solution.
要警惕! :)