我有一个对象数组,这些对象是从Vue Axios函数发布的,我希望循环遍历并保存到数据库中。它们是一个问题的答案。
我传入了$data
,它是答案对象的数组(每个对象都有内容,正确和标记属性),以及它们属于的问题的$id
。当我返回$data,
时,它将显示具有所有正确属性的对象数组。返回$data[0]
时,我可以访问第一个对象。但是,当我尝试如下进行foreach时,它抱怨$content
不存在。在count()
上运行$data
也会出错。怎么了?
Route::post('answers/{id}', function (Request $data, $id) {
foreach ($data as $value) {
$post[] = [
'user_id' => 1,
'question_id' => $id,
'content' => $value->content,
'correct' => $value->correct,
'mark' => $value->mark
]);
}
Answer::save($post);
});
答案 0 :(得分:2)
您正在尝试遍历Request类实例的空$request
对象。要首先访问接收到的值,请获取它们:
// To get all the data
$data = $request->all();
// or..
// To get just a specific value
$data = $request->get('key');
// or..
// only a list of allowed elements
$data = $request->only('here', 'goes', 'your', 'keys');
因此,如果您的前端在键items
下发送了一组项目。像上面提到的那样获得它们:
$items = $request->get('items');
然后您可以使用foreach()
:
$items = $request->get('items');
foreach($items as $item)
{
// your operations
}
您可以在Retrieving Input中了解有关documentation的更多信息。