feature/category-tree #55

Merged
krzysiej merged 5 commits from feature/category-tree into master 2026-01-26 08:59:58 +01:00
Showing only changes of commit 652ad0db7e - Show all commits

View File

@@ -11,10 +11,11 @@ final class CategoryController extends BaseController
#[Route('/category/{category}', name: 'app_category')] #[Route('/category/{category}', name: 'app_category')]
public function __invoke(string $category): Response public function __invoke(string $category): Response
{ {
if($this->cache->getItem('list_category_'.$category)->isHit()) { // if($this->cache->getItem('list_category_'.$category)->isHit()) {
return $this->render('productList.html.twig', ['listType' => 'category_'.$category]); // return $this->render('productList.html.twig', ['listType' => 'category_'.$category]);
} // }
/** @var Product[] $products */
$products = Product::with(['price', 'lowestPrice']) $products = Product::with(['price', 'lowestPrice'])
->selectRaw('products.*') ->selectRaw('products.*')
->distinct('products.id') ->distinct('products.id')
@@ -24,6 +25,61 @@ final class CategoryController extends BaseController
->orderByDesc('created_by') ->orderByDesc('created_by')
->get(); ->get();
$categoriesTree = [];
foreach ($products as $product) {
$categoriesTree = $this->addToTree($product->categories, $categoriesTree);
dump($categoriesTree);
}
dd($categoriesTree);
dd();
return $this->render('productList.html.twig', ['products' => $products, 'listType' => 'category_' . $category]); return $this->render('productList.html.twig', ['products' => $products, 'listType' => 'category_' . $category]);
} }
private function addToTree(array $categories, mixed $categoriesTree)
{
// $tree = [
// "Elektronarzędzia" => [
// "Maszyny i narzędzia do cięcia" => [
// "Pilarki tarczowe" => []
//
// ]
// ]
// ];
// dump($tree);
// $test = &$tree['Elektronarzędzia'];
// $test = &$test['Maszyny i narzędzia do cięcia'];
// $test = &$test['Maszyny i narzędzia do cięcia2'];
// $test = &$test['Maszyny i narzędzia do cięcia3'];
// $test['node'] = [];
// dump(
// $tree
// );
//
// $tree2 = [];
// $tree2['Elektronarzędzia'] = [];
// $tree2['Elektronarzędzia']['Maszyny i narzędzia do cięcia'] = [];
$tmp = &$categoriesTree;
foreach ($categories as $category) {
if (empty($tmp[$category])) {
$tmp[$category] = [];
$tmp = &$tmp[$category];
} else {
$tmp = &$tmp[$category];
}
}
dump($categoriesTree);
return $categoriesTree;
}
} }