<?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 Doctrine\ORM\EntityManagerInterface;
use Symfony\Component\HttpFoundation\Session\SessionInterface;
class ZenNewsListController extends AbstractController
{
/**
* @var EntityManagerInterface
*/
protected $entityManager;
public function __construct(EntityManagerInterface $entityManager)
{
$this->entityManager = $entityManager;
}
/**
* @Route("/block/zen_news_list", name="block_zen_news_list")
* @Template("user_data/zen_news_list.twig")
*/
public function index(Request $request, SessionInterface $session)
{
$id = $session->get('blb_id', '0'); // 'default_value'は値がない場合のデフォルト
$w = '';
$category = '全ての記事';
if ($id == 0) {
} else {
if ($id == 1) {
$w = 'AND `category`="お知らせ"';
$category = 'お知らせ';
} elseif ($id == 2) {
$category = '商品情報';
$w = 'AND `category`="商品情報"';
}
}
// SQLクエリを実行してデータを取得
$connection = $this->entityManager->getConnection();
$sql = 'SELECT * FROM `blb_information` WHERE `view`=1 ' . $w . ' ORDER BY `s_date` DESC LIMIT 10'; // 任意のテーブル名を指定
$stmt = $connection->prepare($sql);
$result = $stmt->executeQuery();
$newsList = $result->fetchAllAssociative();
for ($i = 0; $i < count($newsList); $i++) {
if (file_exists('up_images/news/' . $newsList[$i]['id'] . '/1.jpg')) {
$newsList[$i]['image'] = '../up_images/news/' . $newsList[$i]['id'] . '/1.jpg';
} else {
$newsList[$i]['image'] = '';
}
}
// テンプレートにデータを渡してレンダリング
/*
return [
'NewsList' => $newsList
];
*/
return $this->render('Block/zen_news_list.twig', [
'Category' => $category,
'NewsList' => $newsList,
]);
}
}