My beer compendium
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.
 
 
 
 
 
 

92 lines
3.0 KiB

<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\Hopaddition;
use App\Models\Hop;
use App\Models\Summarie;
class HopAdditionController extends Controller
{
public function __construct()
{
$this->middleware('auth');
}
public function index()
{
$hopadditions = Hopaddition::orderBy('id')->get();
foreach ($hopadditions as $hopaddition)
{
$beername = Summarie::where('beer_id', $hopaddition->beer_id)->value('name');
$hopname = Hop::where('id', $hopaddition->hop_id)->value('name');
$hopaddition['beer'] = $beername;
$hopaddition['hop'] = $hopname;
}
return view('hopadditions.index')->with('hopadditions', $hopadditions);
}
public function store(Request $request){
// validation
$this->validate($request,[
'beer_id' => 'required',
'hop_id' => 'required',
'amount' => 'required',
'timing' => 'required',
]);
// create project
$hop = new Hopaddition;
$lastID = Hopaddition::orderBy('id','desc')->take(1)->value('id');
$hop->id = number_format($lastID) + 1;
$hop->beer_id = $request->input('beer_id');
$hop->hop_id = $request->input('hop_id');
$hop->amount = $request->input('amount');
$hop->timing = $request->input('timing');
$hop->save();
return redirect('/hopadditions')->with('success', 'Hop Addition Added');
}
public function edit($id){
$hopaddition = Hopaddition::where('id', (int)$id)->first();
$beers = Summarie::orderBy('name')->get();
$selected_beer = $hopaddition->beer_id;
$hops = Hop::orderBy('name')->get();
$selected_hop = $hopaddition->hop_id;
$data = array('hopaddition'=>$hopaddition, 'beers'=>$beers, 'hops'=>$hops, 'selected_beer'=>$selected_beer, 'selected_hop'=>$selected_hop);
return view('hopadditions.edit')->with($data);
}
public function update(Request $request, $id){
// validation
$this->validate($request,[
'beer_id' => 'required',
'hop_id' => 'required',
'amount' => 'required',
'timing' => 'required',
]);
$hop = Hopaddition::where('id', (int)$id)->first();
$hop->beer_id = $request->input('beer_id');
$hop->hop_id = $request->input('hop_id');
$hop->amount = $request->input('amount');
$hop->timing = $request->input('timing');
$hop->save();
return redirect('/hopadditions')->with('success', 'Hop Addition Updated!');
}
public function create()
{
$beers = Summarie::orderBy('name')->get();
$hops = Hop::orderBy('name')->get();
$data = array('beers'=>$beers, 'hops'=>$hops);
return view('hopadditions.create')->with($data);
}
public function destroy($id)
{
$hopaddition = Hopaddition::find($id);
$hopaddition->delete();
return redirect('/hopadditions')->with('success', 'Hop Addition deleted!');
}
}