Symfony KnpPaginatorBundle и кэш второго уровня - PullRequest
0 голосов
/ 19 января 2019

Кэш второго уровня включен в проекте, но я знаю, как кэшировать данные, извлеченные из paginator?

Config.yml

...
    orm:
        auto_generate_proxy_classes: '%kernel.debug%'
        naming_strategy: doctrine.orm.naming_strategy.underscore
        auto_mapping: true
        second_level_cache:
            enabled: true
            region_lifetime: 3600 # 1 hour
...

Controller

    public function showAction(Request $request) {
        $em    = $this->get('doctrine.orm.entity_manager');
        $dql   = "
                  SELECT c FROM AppBundle:City c
                  ";


        $query = $em->createQuery($dql);

        $paginator  = $this->get('knp_paginator');
        $pagination = $paginator->paginate(
            $query, /* query NOT result */
            $request->query->getInt('page', 1)/*page number*/,
            25/*limit per page*/
        );



        return $this->render('city/index.html.twig', [
            'pagination' => $pagination,

        ]);
    }

Entity

...
/**
 * City
 *
 * @ORM\Table(name="cities")
 * @ORM\Entity(repositoryClass="AppBundle\Repository\CityRepository")
 *
 * @Cache("READ_ONLY")
 *
 */
class City
{
    /**
     * @var int
     *
     * @ORM\Column(name="id", type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    private $id;
...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...