Monday, April 3, 2017

populate array from database inside foreach loop and fetch it later

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



via kaustabh

Advertisement