我正在使用Laravel 5.1,并且正在使用Illuminate \ Http \ Request实例来访问发送的文件请求,但是我似乎找不到正确的方法来访问media元素。我可以访问该对象中的所有其他值。
这是我正在使用的JSON数据格式:
{"_method":"PUT",
"topic":"1 test",
"description":"1 test",
"media_description":"1 test",
"old_parts":
{"part-1":
{"sub_header":"test 2",
"text_field":"test 2 ",
"article_id":"18",
"media":{}},
"part-2":
{"sub_header":"test 3 ",
"text_field":"test 3",
"article_id":"18",
"media":{}}
},
"published":"1",
"media":{}
}
我使用两个foreach循环访问控制器中的介质,一个循环用于数据库收集,另一个循环用于表单内容。我可以使用以下方法访问媒体元素。
if ($file = $request->file('media-' . $running_number)) {...}
但是它大大降低了可读性,因为我应该将字段命名为作为media-1,media-2 ......,而不像我对其他所有操作一样使用foreach循环访问它们。
那么有没有办法使用foreach循环变量访问文件?
f.e。像这样
foreach($input['old_parts'] as $old_part) {
if ($old_part->hasFile('media')) { ... }
}
如果我使用键入的行,该函数将返回FatalThrowableError:调用数组上的成员函数hasFile()。
还是我应该使用类似的东西
$request->file('old_parts[part-'.$x.'][media]');
要访问文件输入并使用自定义变量来计算索引?问题只是我无法弄清楚如何使用文件进入JSON中的多个级别,就像old_parts ['..'] ['..']和old_parts ['part-1']-> media don似乎什么也不返回(返回null)。