我想用一个从db表中获取的id填充一个数组。后来我想从数组中获取这些ID以插入到另一个db表中。以下是代码:
public function storeBaritems()
{
$id = Auth::user()->id;
$bartypearray = array();
$bartypes = request('select1'); // <select id="select1" name="select1[]"
foreach ($bartypes as $type) {
$bartypearray[] = Bartype::select('bartype_id')
->where('bar_type_name','like',$type)
->where('restaurant_id', $id)
->get();
}
$baritems = request('itemname'); //<input type="text" class="hookah-field" name="itemname[]">
$descriptions = request('description'); //<input type="text" class="hookah-field" name="description[]">
$quantity = request('quantity'); //<input type="text" class="hookah-field" name="quantity[]">
$prices = request('price'); //<input type="text" class="hookah-field" name="price[]">
$i = 0;
foreach ($bartypearray as $item) {
Bar_menu::create([
'item_name'=>$baritems[$i],
'description'=>$descriptions[$i],
'quantity'=>$quantity[$i],
'price'=>$prices[$i],
'res_id'=>$id,
'type_id'=>$item->bartype_id
]);
$i += 1;
}
}
HTML表单动态创建具有相同&#34; name&#34;的新字段。属性。现在,我收到错误 - &#34; Collection.php第1527行中的异常: 此集合实例上不存在属性[bartype_id]。&#34;任何解决方案都会有帮感谢
答案 0 :(得分:1)
在此处进行更改,
$bartypearray[] = Bartype::select('bartype_id')
->where('bar_type_name','like',$type)
->where('restaurant_id', $id)
->first();
get()
将返回二维数组,first()
将返回一维数组
答案 1 :(得分:0)
您可以使用pluck方法。
$bartypearray = Bartype::where('bar_type_name','like',$type)
->where('restaurant_id', $id)
->pluck('bartype_id');
使用此方法不需要第一个foreach
。
顺便说一句。我强烈建议你进入all collection methods