/** * {@inheritdoc} */ public function getBlocksById(PageInterface $page) { $query = $this->getEntityManager()->createQuery(sprintf('SELECT b FROM %s b INDEX BY b.id WHERE b.page = :page ORDER BY b.position ASC', $this->blockManager->getClass()))->setParameters(array('page' => $page->getId())); $query->setHint(\Doctrine\ORM\Query::HINT_CUSTOM_OUTPUT_WALKER, 'Gedmo\\Translatable\\Query\\TreeWalker\\TranslationWalker'); $query->setHint(\Gedmo\Translatable\TranslatableListener::HINT_TRANSLATABLE_LOCALE, $page->getSite()->getLocale()); $blocks = $query->execute(); $page->setBlocks(new ArrayCollection($blocks)); return $blocks; }