我在foreach中遇到语法错误。在Query Builder数组中使用foreach的正确方法是什么,代码如下:
public function postItems(Request $request, $id){
$itemid = \DB::table('items_tables')->where('category_id','=',$id)->get();
DB::table('store_items')->insert(
array('user_id' => \Auth::user()->id,
foreach($itemid as $itemids){
'items' => $itemids->name,
}
'store_id' => $id)
);
return view('actions.itemstore');
}
在foreach中发生语法错误如下:
解析错误:语法错误,意外' foreach' (T_FOREACH),期待')'
$ itemids->名称变量具有众多价值。我需要循环使用它。
答案 0 :(得分:0)
这应该是这样的:
public function postItems(Request $request, $id){
$itemid = \DB::table('items_tables')->where('category_id','=',$id)->get();
foreach($itemid as $itemids) {
$data_to_insert = [
'user_id' => \Auth::user()->id,
'store_id' => $id,
'items' => $itemids
];
DB::table('store_items')->insert($data_to_insert);
}
return view('actions.itemstore');
}
答案 1 :(得分:0)
如果您想要使用完整的Laravel,可以使用集合来编写它:
public function postItems(Request $request, $id)
{
collect(\DB::table('items_tables')->where('category_id','=',$id)->get())->each(function ($item) use ($id) {
\DB::table('store_items')->insert([
'user_id' => \Auth::user()->id,
'store_id' => $id,
'item_name' => $item->name
]);
});
return view('actions.itemstore');
}
如果你使用的是Laravel 5.3,你也可以放弃那个collect(),因为现在我们甚至在使用DB时也会收集它们。