You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							135 lines
						
					
					
						
							5.4 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							135 lines
						
					
					
						
							5.4 KiB
						
					
					
				
								<?php
							 | 
						|
								
							 | 
						|
								namespace App\Http\Controllers;
							 | 
						|
								
							 | 
						|
								use Illuminate\Http\Request;
							 | 
						|
								use App\Models\Search;
							 | 
						|
								use App\Models\Summarie;
							 | 
						|
								use App\Models\Brewerie;
							 | 
						|
								use App\Models\Hopaddition;
							 | 
						|
								use App\Models\Hop;
							 | 
						|
								use App\Models\Grainbill;
							 | 
						|
								use App\Models\Grain;
							 | 
						|
								use App\Models\Fermentation;
							 | 
						|
								use App\Models\Yeast;
							 | 
						|
								use App\Models\Adjunctaddition;
							 | 
						|
								use App\Models\Adjunct;
							 | 
						|
								use App\Models\Mashe;
							 | 
						|
								class SearchController extends Controller
							 | 
						|
								{
							 | 
						|
								    public function search(Request $request){
							 | 
						|
								      // validation
							 | 
						|
								      $this->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')->get();
							 | 
						|
								               $hoparr=array();
							 | 
						|
								               $i = 0;
							 | 
						|
								               foreach ($hops as $hop){
							 | 
						|
								                 $hopname = Hop::where('id', $hop->hop_id)->value('name');
							 | 
						|
								                 if ($i == 0){
							 | 
						|
								                   $hoparr[]= array('id'=>$hop->hop_id, 'name'=>$hopname);
							 | 
						|
								                 } else {
							 | 
						|
								                   array_push($hoparr, array('id'=>$hop->hop_id, 'name'=>$hopname));
							 | 
						|
								                 };
							 | 
						|
								                 $i++;
							 | 
						|
								               };
							 | 
						|
								               $result['hops']=$hoparr;
							 | 
						|
								               $grains = Grainbill::where('beer_id', $result->beer_id)->get();
							 | 
						|
								               $grainarr = array();
							 | 
						|
								               $i = 0;
							 | 
						|
								               foreach ($grains as $grain){
							 | 
						|
								                 $grainname = Grain::where('id', $grain->grain_id)->value('name');
							 | 
						|
								                 if ($i == 0){
							 | 
						|
								                   $grainarr[]= array('id'=>$grain->grain_id, 'name'=>$grainname, 'grain_bill'=>$grain->grain_bill);
							 | 
						|
								                 } else {
							 | 
						|
								                   array_push($grainarr, array('id'=>$grain->grain_id, 'name'=>$grainname, 'grain_bill'=>$grain->grain_bill));
							 | 
						|
								                 };
							 | 
						|
								                 $i++;
							 | 
						|
								               };
							 | 
						|
								               $result['grains'] = $grainarr;
							 | 
						|
								               $yeasts = Fermentation::where('beer_id', $result->beer_id)->distinct('yeast_id')->get();
							 | 
						|
								               $yeastarr=array();
							 | 
						|
								               $i = 0;
							 | 
						|
								               foreach ($yeasts as $yeast){
							 | 
						|
								                   $yeastname = Yeast::where('id', $yeast->yeast_id)->value('name');
							 | 
						|
								                 if ($i == 0){
							 | 
						|
								                   $yeastarr[]= array('id'=>$yeast->yeast_id, 'name'=>$yeastname);
							 | 
						|
								                 } else {
							 | 
						|
								                   array_push($yeastarr, array('id'=>$yeast->yeast_id, 'name'=>$yeastnname));
							 | 
						|
								                 };
							 | 
						|
								                 $i++;
							 | 
						|
								               };
							 | 
						|
								               $result['yeasts']=$yeastarr;
							 | 
						|
								               $adjuncts = Adjunctaddition::where('beer_id', $result->beer_id)->distinct('adjunct_id')->get();
							 | 
						|
								               $adjunctarr = array();
							 | 
						|
								               $i = 0;
							 | 
						|
								               foreach ($adjuncts as $adjunct){
							 | 
						|
								                 $adjunctname = Adjunct::where('id', $adjunct->adjunct_id)->value('name');
							 | 
						|
								                 if ($i == 0){
							 | 
						|
								                   $adjunctarr[]= array('id'=>$adjunct->adjunct_id, 'name'=>$adjunctname);
							 | 
						|
								                 } else {
							 | 
						|
								                   array_push($adjunctarr, array('id'=>$adjunct->adjunct_id, 'name'=>$adjunctname));
							 | 
						|
								                 };
							 | 
						|
								                 $i++;
							 | 
						|
								               };
							 | 
						|
								               $result['adjuncts']=$adjunctarr;
							 | 
						|
								               $mashes = Mashe::where('beer_id', $result->beer_id)->get();
							 | 
						|
								               $masharr = array();
							 | 
						|
								               $i = 0;
							 | 
						|
								               foreach ($mashes as $mash){
							 | 
						|
								                  if ($mash->stage == 1) {
							 | 
						|
								                    $result['boil'] = $mash->boil;
							 | 
						|
								                  }
							 | 
						|
								                  if ($i == 0){
							 | 
						|
								                    $masharr[] = array('id'=>$mash->id, 'stage'=>$mash->stage, 'duration'=>$mash->duration, 'temp'=>$mash->temp);
							 | 
						|
								                  } else {
							 | 
						|
								                    array_push($masharr, array('id'=>$mash->id, 'stage'=>$mash->stage, 'duration'=>$mash->duration, 'temp'=>$mash->temp));
							 | 
						|
								                  };
							 | 
						|
								                  $i++;
							 | 
						|
								               };
							 | 
						|
								               $result['mashes']=$masharr;
							 | 
						|
								               $hopadditions = Hopaddition::where('beer_id', $result->beer_id)->distinct('timing')->get();
							 | 
						|
								               $result['hopadditions'] = $hopadditions;
							 | 
						|
								               $fermentations = Fermentation::where('beer_id', $result->beer_id)->get();
							 | 
						|
								               $fermentarr = array();
							 | 
						|
								               $i = 0;
							 | 
						|
								               foreach ($fermentations as $fermentation){
							 | 
						|
								                    $j = $i + 1;
							 | 
						|
								                   if ($i == 0){
							 | 
						|
								                     $fermentarr = array('stage'=>$j, 'temp'=>$fermentation->temperature, 'duration'=>$fermentation->duration);
							 | 
						|
								                   } else {
							 | 
						|
								                     array_push($fermentarr, array('stage'=>$j, 'temp'=>$fermentation->temperature, 'duration'=>$fermentation->duration));
							 | 
						|
								                   };
							 | 
						|
								                   $i++;
							 | 
						|
								               };
							 | 
						|
								               $result['fermentations'] = $fermentarr;
							 | 
						|
								            }
							 | 
						|
								            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);
							 | 
						|
								      }
							 | 
						|
								}
							 |