55 lines
1.5 KiB
PHP
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]);
|
|
}
|
|
}
|