Skip to content

Commit

Permalink
fixed category filters
Browse files Browse the repository at this point in the history
  • Loading branch information
yushine committed Dec 26, 2024
1 parent 7ccc90d commit 1a5c345
Showing 1 changed file with 27 additions and 31 deletions.
58 changes: 27 additions & 31 deletions innopacks/front/src/Controllers/CategoryController.php
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,7 @@
use App\Http\Controllers\Controller;
use Exception;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Cache;
use InnoShop\Common\Models\Category;
use InnoShop\Common\Models\Product;
use InnoShop\Common\Repositories\CategoryRepo;
use InnoShop\Common\Repositories\ProductRepo;

Expand Down Expand Up @@ -44,60 +42,58 @@ public function index(Request $request): mixed
* @param Request $request
* @param Category $category
* @return mixed
* @throws Exception
*/
public function show(Request $request, Category $category): mixed
{
$slug = $category->slug;
$keyword = $request->get('keyword');

return $this->renderShow($slug, $keyword);
return $this->renderShow($category, $keyword, $request);
}

/**
* Display the product list under the current category
*
* @param Request $request
* @return mixed
* @throws Exception
*/
public function slugShow(Request $request): mixed
{
$slug = $request->slug;
$keyword = $request->get('keyword');
$category = CategoryRepo::getInstance()->withActive()->builder(['slug' => $request->slug])->firstOrFail();
$keyword = $request->get('keyword');

return $this->renderShow($slug, $keyword);
return $this->renderShow($category, $keyword, $request);
}

/**
* @param $slug
* @param Category $category
* @param $keyword
* @param Request $request
* @return mixed
* @throws Exception
*/
private function renderShow($slug, $keyword): mixed
private function renderShow(Category $category, $keyword, Request $request): mixed
{
$cacheKey = cache_key('category', ['slug' => $slug, 'keyword' => $keyword]);

return Cache::remember($cacheKey, 0, function () use ($slug, $keyword) {
$category = CategoryRepo::getInstance()->withActive()->builder(['slug' => $slug])->firstOrFail();
$categories = CategoryRepo::getInstance()->getTwoLevelCategories();
$categories = CategoryRepo::getInstance()->getTwoLevelCategories();

$filters = [
'category_id' => $category->id,
'keyword' => $keyword,
'sort' => \request('sort'),
'order' => \request('order'),
'per_page' => \request('per_page'),
];
$products = ProductRepo::getInstance()->getFrontList($filters);
$filters = [
'category_id' => $category->id,
'keyword' => $keyword,
'sort' => $request->get('sort'),
'order' => $request->get('order'),
'per_page' => $request->get('per_page'),
];
$products = ProductRepo::getInstance()->getFrontList($filters);

$data = [
'slug' => $slug,
'category' => $category,
'categories' => $categories,
'products' => $products,
'per_page_items' => CategoryRepo::getInstance()->getPerPageItems(),
];
$data = [
'slug' => $category->slug ?? '',
'category' => $category,
'categories' => $categories,
'products' => $products,
'per_page_items' => CategoryRepo::getInstance()->getPerPageItems(),
];

return inno_view('categories.show', $data)->render();
});
return inno_view('categories.show', $data)->render();
}
}

0 comments on commit 1a5c345

Please sign in to comment.