ldc-boutique-cnc/app/Http/Controllers/Fo/RangeController.php

62 lines
1.7 KiB
PHP

<?php
namespace App\Http\Controllers\Fo;
use App\Http\Controllers\Controller;
use App\Models\Product;
use App\Models\Range;
use Illuminate\Http\Request;
class RangeController extends Controller
{
/**
* All ranges.
*
* @param Request $request
* @return \Illuminate\Contracts\View\View
*
* @phpcs:disable Generic.CodeAnalysis.UnusedFunctionParameter.FoundInExtendedClass
*/
public function ranges(Request $request)
{
// @phpcs:enable
// $ranges shared in AppServiceProvider.
return view('theme::pages.ranges.index');
}
/**
* One Range page.
*
* @param Request $request
* @param string $range_slug
* @return \Illuminate\Contracts\View\View
*
* @phpcs:disable Generic.CodeAnalysis.UnusedFunctionParameter.FoundInExtendedClassBeforeLastUsed
*/
public function range(Request $request, string $range_slug)
{
// @phpcs:enable
$range = Range::where('slug', $range_slug)->first();
if (!$range || !$range->status) {
abort(404);
}
$products = Product::where('range_id', $range->id)->where('status', 1)->paginate(9);
// Find promo within range.
$offres = Product::where('range_id', $range->id)
->where('status', 1)
->has('discount')
->with('discount')->get();
return view('theme::pages.ranges.show', compact('range', 'products', 'offres'));
}
/**
* Range card.
*
* @param \App\Models\Range $range
* @return \Illuminate\Contracts\View\View
*/
public function ajaxRangesCard(Range $range)
{
return view('theme::partials.ranges.card', ['range' => $range]);
}
}