app/Customize/Controller/Block/ZenTop001Controller.php line 32

Open in your IDE?
  1. <?php
  2. namespace Customize\Controller\Block;
  3. use Eccube\Controller\AbstractController;
  4. use Symfony\Component\HttpFoundation\Request;
  5. use Symfony\Component\Routing\Annotation\Route;
  6. use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
  7. use Eccube\Repository\ProductRepository;
  8. class ZenTop001Controller extends AbstractController
  9. {
  10.     /**
  11.      * @var ProductRepository
  12.      */
  13.     private $productRepository;
  14.     public function __construct(
  15.         ProductRepository $productRepository
  16.     ) {
  17.         $this->productRepository $productRepository;
  18.     }
  19.     /**
  20.      * @Route("/block/zen_top001", name="block_zen_top001")
  21.      * @Template("Block/zen_top001.twig")
  22.      */
  23.     public function index(Request $request)
  24.     {
  25.         $criteria = ['add_item1' => 'Pickup'];
  26.         $Products $this->productRepository->findBy($criteria);
  27.         shuffle($Products);
  28.         for ($i 0$i count($Products); $i++) {
  29.             $connection $this->entityManager->getConnection();
  30.             $sql 'SELECT c.category_name, pc.price02 
  31.             FROM dtb_product p
  32.             JOIN dtb_product_category dpc ON p.id = dpc.product_id
  33.             JOIN dtb_category c ON dpc.category_id = c.id
  34.             JOIN dtb_product_class pc ON p.id = pc.product_id
  35.             WHERE p.id = ' $Products[$i]['id'] . '
  36.             AND c.parent_category_id IS NULL';
  37.             $stmt $connection->prepare($sql);
  38.             $result $stmt->executeQuery();
  39.             $categories $result->fetchAllAssociative();
  40.             // category_name のみを配列に格納
  41.             $categoryNames array_column($categories'category_name');
  42.             // /で連結
  43.             $Products[$i]->setCategories(implode('/'$categoryNames));
  44.             $priceWithoutTax $categories[0]['price02'];
  45.             // 税込み価格を計算して設定
  46.             $priceWithTax $priceWithoutTax + ($priceWithoutTax 0.10);
  47.             $Products[$i]->setPrice03(round($priceWithTax)); // 四捨五入で整数化
  48.             //echo '[' . $Products[$i]['price02'] . ']';
  49.             //$Products[$i]->setPrice03($categories[0]['price02']);
  50.         }
  51.         return [
  52.             'Products' => $Products
  53.         ];
  54.     }
  55. }