<?php
namespace Customize\Controller\Block;
use Eccube\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Routing\Annotation\Route;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
use Eccube\Repository\ProductRepository;
class ZenTop001Controller extends AbstractController
{
/**
* @var ProductRepository
*/
private $productRepository;
public function __construct(
ProductRepository $productRepository
) {
$this->productRepository = $productRepository;
}
/**
* @Route("/block/zen_top001", name="block_zen_top001")
* @Template("Block/zen_top001.twig")
*/
public function index(Request $request)
{
$criteria = ['add_item1' => 'Pickup'];
$Products = $this->productRepository->findBy($criteria);
shuffle($Products);
for ($i = 0; $i < count($Products); $i++) {
$connection = $this->entityManager->getConnection();
$sql = 'SELECT c.category_name, pc.price02
FROM dtb_product p
JOIN dtb_product_category dpc ON p.id = dpc.product_id
JOIN dtb_category c ON dpc.category_id = c.id
JOIN dtb_product_class pc ON p.id = pc.product_id
WHERE p.id = ' . $Products[$i]['id'] . '
AND c.parent_category_id IS NULL';
$stmt = $connection->prepare($sql);
$result = $stmt->executeQuery();
$categories = $result->fetchAllAssociative();
// category_name のみを配列に格納
$categoryNames = array_column($categories, 'category_name');
// /で連結
$Products[$i]->setCategories(implode('/', $categoryNames));
$priceWithoutTax = $categories[0]['price02'];
// 税込み価格を計算して設定
$priceWithTax = $priceWithoutTax + ($priceWithoutTax * 0.10);
$Products[$i]->setPrice03(round($priceWithTax)); // 四捨五入で整数化
//echo '[' . $Products[$i]['price02'] . ']';
//$Products[$i]->setPrice03($categories[0]['price02']);
}
return [
'Products' => $Products
];
}
}