ldc-boutique-cnc/app/Http/Controllers/Fo/RangeController.php
2023-04-19 12:58:08 +02:00

55 lines
1.5 KiB
PHP

<?php
namespace App\Http\Controllers\Fo;
use App\Http\Controllers\Controller;
use App\Models\Merchandise\Product;
use App\Models\Merchandise\Range;
use Illuminate\Database\Eloquent\Builder;
class RangeController extends Controller
{
/**
* All ranges.
*
* @return \Illuminate\Contracts\View\View
*/
public function ranges()
{
// $ranges shared in AppServiceProvider.
return view('theme::pages.ranges.index');
}
/**
* One Range page.
*
* @param \App\Models\Merchandise\Range $rangeSlug
* @return \Illuminate\Contracts\View\View
*/
public function range(Range $rangeSlug)
{
$products = Product::query()->whereHas('range', function (Builder $q) use ($rangeSlug) {
$q->where('id', $rangeSlug->id);
})->where('status', true)->with('discount')->paginate(9);
// * Find promo within range.
$offres = Product::query()->whereHas('range', function (Builder $q) use ($rangeSlug) {
$q->where('id', $rangeSlug->id);
})->where('status', true)->has('discount')->with('discount')->get();
return view('theme::pages.ranges.show', [
'range' => $rangeSlug,
'products' => $products,
'offres' => $offres
]);
}
/**
* Range card.
*
* @param \App\Models\Merchandise\Range $range
* @return \Illuminate\Contracts\View\View
*/
public function ajaxRangesCard(Range $range)
{
return view('theme::partials.ranges.card', ['range' => $range]);
}
}