ldc-boutique-cnc/app/Http/Controllers/Fo/RangeController.php
2023-02-23 13:12:00 +01:00

64 lines
1.8 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 \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function ajaxRangesCard(Request $request)
{
$range = Range::where('status', true)->where('slug', $request->SLUG)->first();
return view('theme::partials.ranges.card', compact('range'));
}
}