<?php
namespace Customize\Controller;
use Eccube\Controller\AbstractController;
use Customize\Repository\NewsRepository;
use Knp\Component\Pager\Paginator;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Routing\Annotation\Route;
class NewsController extends AbstractController
{
/**
* NewsController constructor.
*
* @param NewsRepository $newsRepository
*/
public function __construct(
NewsRepository $newsRepository
) {
$this->newsRepository = $newsRepository;
}
/**
* 新着情報一覧画面.
*
* @Route("/news", name="news")
* @Route("/news/{class_name}", name="news_category", methods={"GET"})
* @Template("News/index.twig")
*
* @param Request $request
*/
public function index(Request $request, $page_no = 1, Paginator $paginator, $class_name = null)
{
$qb = $this->newsRepository->getQueryBuilderAll($class_name);
$pagination = $paginator->paginate(
$qb,
$page_no,
$this->eccubeConfig->get('eccube_default_page_count')
);
return [
'pagination' => $pagination,
];
}
/**
* 新着情報詳細画面.
*
* @Route("/news/detail/{id}", name="news_detail", methods={"GET"}, requirements={"id" = "\d+"})
* @Template("News/detail.twig")
*
* @param Request $request
* @param News $News
*
* @return array
*/
public function detail(Request $request, $id)
{
$News = $this->newsRepository->find($id);
return [
'News' => $News,
];
}
}