dscuu86620 2017-04-03 13:29
浏览 42

从foreach循环内的数据库填充数组并稍后获取它

I want to populate an array with ids that are fetched from db table. Later I want to fetch those ids from the array to insert into another db table. Below is the code:

 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;
    }
} 

The HTML form dynamically creates new fields with same "name" attribute. Right now, I am getting the error - "Exception in Collection.php line 1527: Property [bartype_id] does not exist on this collection instance." Any solution would help. Thanks

  • 写回答

2条回答 默认 最新

  • dongmei8511 2017-04-03 13:32
    关注

    Make change here,

    $bartypearray[] = Bartype::select('bartype_id')
                                ->where('bar_type_name','like',$type)
                                ->where('restaurant_id', $id)
                                ->first();
    

    get() will return 2-D array and first() will return 1-D array

    评论

报告相同问题?