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.
		
		
		
		
		
			
		
			
				
					
					
						
							90 lines
						
					
					
						
							3.1 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							90 lines
						
					
					
						
							3.1 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 Kyslik\ColumnSortable\Sortable;
							 | 
						|
								
							 | 
						|
								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.'%')->get();
							 | 
						|
								            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');
							 | 
						|
								               $result['grains']=[];
							 | 
						|
								               $i = 0;
							 | 
						|
								               foreach ($grains as $grain){
							 | 
						|
								                 $grainname = Grain::where('id', $grain->id)->value('name');
							 | 
						|
								                 $result['grains'][$i]['id'] = $grain->id;
							 | 
						|
								                 $result['grains'][$i]['name'] = $grainname;
							 | 
						|
								                 $i++;
							 | 
						|
								               };
							 | 
						|
								               $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'] = $hopname;
							 | 
						|
								                 $i++;
							 | 
						|
								               };
							 | 
						|
								            }
							 | 
						|
								            break;
							 | 
						|
								        case('brewerie'):
							 | 
						|
								
							 | 
						|
								            break;
							 | 
						|
								        case('hops'):
							 | 
						|
								
							 | 
						|
								            break;
							 | 
						|
								        case('yeast'):
							 | 
						|
								
							 | 
						|
								            break;
							 | 
						|
								        default:
							 | 
						|
								           $msg = "You fucked up somehow!";
							 | 
						|
								        }
							 | 
						|
								        $results = $results->sortable('name')->paginate(10);
							 | 
						|
								        return('search.results')->with($results);
							 | 
						|
								      }
							 | 
						|
								}
							 |