validate($request,[ 'search' => 'required', 'table' => 'required', ]); $search = $request->input('search'); $table = $request->input('table'); switch($table) { case('summarie'): $results = Summarie::where('keywords', 'LIKE', '%'.$search.'%')->orWhere('type', 'LIKE', '%'.$search.'%')->sortable()->paginate(10); foreach ($results as $result) { $brewery = Brewerie::where('id', $result->brewery_id)->value('name'); $result['brewery']=$brewery; $hops = Hopaddition::where('beer_id', $result->beer_id)->distinct('hop_id'); $result['hops']=[]; $i = 0; foreach ($hops as $hop){ $hopname = Hop::where('id', $hop->id)->value('name'); $result['hops'][$i]['id'] = $hop->id; $result['hops'][$i]['name'] = $hopname; $i++; }; $grains = Grainbill::where('beer_id', $result->beer_id)->distinct('grain_id'); $grainarr = array(); foreach ($grains as $grain){ $grainname = Grain::where('id', $grain->grain_id)->value('name'); array_push($grainarr, array('id'=>$grain->grain_id, 'name'=>$grainname)); }; $result['grains'] = $grainarr; $yeasts = Fermentation::where('beer_id', $result->beer_id)->distinct('yeast_id'); $result['yeasts']=[]; $i = 0; foreach ($yeasts as $yeast){ $yeastname = Yeast::where('id', $yeast->id)->value('name'); $result['yeasts'][$i]['id'] = $yeast->id; $result['yeasts'][$i]['name'] = $yeastname; $i++; }; $adjuncts = Adjunctaddition::where('beer_id', $result->beer_id)->distinct('adjunct_id'); $result['adjuncts']=[]; $i = 0; foreach ($adjuncts as $adjunct){ $adjunctname = Adjunct::where('id', $adjunct->id)->value('name'); $result['adjuncts'][$i]['id'] = $adjunct->id; $result['adjuncts'][$i]['name'] = $adjunctname; $i++; }; } break; case('brewerie'): break; case('hops'): break; case('yeast'): break; default: $msg = "You fucked up somehow!"; } $data = array('results'=>$results, 'table'=>$table); return view('search.results')->with($data); } }