Finished blade designs and methods and added sortable lists

This commit is contained in:
2021-09-05 16:41:14 +02:00
parent d1d2198ef5
commit 438246740f
21 changed files with 759 additions and 218 deletions

View File

@@ -4,18 +4,25 @@ namespace App\Http\Controllers;
use App\Models\Beer;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Redirect;
class BeerController extends Controller
{
public function show()
public function __construct()
{
$this->middleware('auth');
}
public function show(Beer $beer)
{
return view('beer.show', compact('beer'));
}
public function create()
{
return view('beer.create');
$countries = DB::table('countries')->get();
return view('beer.create', compact('countries'));
}
public function store(Request $request)
@@ -39,4 +46,42 @@ class BeerController extends Controller
return back()->with('success', 'Beer added!');
}
public function edit(Beer $beer)
{
$countries = DB::table('countries')->get();
return view('beer.edit', compact('beer', 'countries'));
}
public function update(Request $request, $id)
{
$this->validate($request, [
'beer' => 'required',
'rating' => 'required',
'country' => 'required',
'type' => 'required',
]);
$beer = Beer::findOrFail($id);
$beer->beer = $request->beer;
$beer->rating = $request->rating;
$beer->country = $request->country;
$beer->type = $request->type;
$beer->review = $request->review;
$beer->save();
return back()->with('success', 'Beer updated!');
}
public function destroy($id)
{
$beer = Beer::findOrFail($id);
$beer->list()->detach();
$beer->delete();
return view('profile')->with('success', 'Beer deleted');
}
}

View File

@@ -6,14 +6,22 @@ use App\Models\Beer;
use App\Models\BeerList;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\DB;
class BeerListController extends Controller
{
public function __construct()
{
$this->middleware('auth')->except('show');
}
public function show(BeerList $list)
{
$beers = Beer::all();
return view('list.show', compact('list', 'beers'));
$listBeers = $list->beer()->sortable()->paginate(5);
return view('list.show', compact('list', 'beers', 'listBeers'));
}
public function create()
@@ -43,6 +51,16 @@ class BeerListController extends Controller
$list->beer()->attach($beerId);
return redirect("/list/" . $list->id);
return back()->with('success', 'Beer added');
}
public function removeItem(Request $request, $id)
{
$beerId = $request->beer;
$list = BeerList::findOrFail($id);
$list->beer()->detach($beerId);
return back()->with('success', 'Beer deleted');
}
}

View File

@@ -4,11 +4,21 @@ namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Kyslik\ColumnSortable\Sortable;
class Beer extends Model
{
use HasFactory;
use Sortable;
public $sortable = [
'beer',
'rating',
'country',
'type'
];
public function list()
{
return $this->belongsToMany(BeerList::class, 'beer_list_pivot', 'beer_id', 'list_id');