¨4.0.1¨
This commit is contained in:
@@ -2,11 +2,17 @@
|
||||
|
||||
namespace Modules\Product\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\Response;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Routing\Controller;
|
||||
use Modules\Review\Entities\Review;
|
||||
use Illuminate\Contracts\View\View;
|
||||
use Modules\Product\Entities\Product;
|
||||
use Illuminate\Contracts\View\Factory;
|
||||
use Modules\Product\Events\ProductViewed;
|
||||
use Modules\Product\Filters\ProductFilter;
|
||||
use Illuminate\Contracts\Foundation\Application;
|
||||
use Modules\Product\Repositories\ProductRepository;
|
||||
use Modules\Product\Http\Middleware\SetProductSortOption;
|
||||
|
||||
class ProductController extends Controller
|
||||
@@ -23,12 +29,14 @@ class ProductController extends Controller
|
||||
$this->middleware(SetProductSortOption::class)->only('index');
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @param \Modules\Product\Entities\Product $model
|
||||
* @param \Modules\Product\Filters\ProductFilter $productFilter
|
||||
* @return \Illuminate\Http\Response
|
||||
* @param Product $model
|
||||
* @param ProductFilter $productFilter
|
||||
*
|
||||
* @return JsonResponse|Application|Factory|View
|
||||
*/
|
||||
public function index(Product $model, ProductFilter $productFilter)
|
||||
{
|
||||
@@ -39,28 +47,37 @@ class ProductController extends Controller
|
||||
return view('public.products.index');
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Show the specified resource.
|
||||
*
|
||||
* @param string $slug
|
||||
* @return \Illuminate\Http\Response
|
||||
*
|
||||
* @return Response
|
||||
*/
|
||||
public function show($slug)
|
||||
{
|
||||
$product = Product::findBySlug($slug);
|
||||
$product = ProductRepository::findBySlug($slug);
|
||||
$relatedProducts = $product->relatedProducts()->forCard()->get();
|
||||
$upSellProducts = $product->upSellProducts()->forCard()->get();
|
||||
$review = $this->getReviewData($product);
|
||||
|
||||
$product->append([
|
||||
'is_in_flash_sale',
|
||||
'flash_sale_end_date',
|
||||
'formatted_price_range',
|
||||
]);
|
||||
|
||||
event(new ProductViewed($product));
|
||||
|
||||
return view('public.products.show', compact('product', 'relatedProducts', 'upSellProducts', 'review'));
|
||||
}
|
||||
|
||||
|
||||
private function getReviewData(Product $product)
|
||||
{
|
||||
if (! setting('reviews_enabled')) {
|
||||
return;
|
||||
if (!setting('reviews_enabled')) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return Review::countAndAvgRating($product);
|
||||
|
||||
Reference in New Issue
Block a user