Я пытаюсь получить объект, переведенной слизняк, например, так:Doctrine2 - ошибка при использовании @ParamConverter
1 - Я сделал пользовательский репозиторий с помощью метода:
public function findByTranslatedSlug($slug, $locale)
{
var_dump($_locale);exit;
$qb = $this->createQueryBuilder('c')
->where('c.slug = :slug')
->setParameters($slug);
$query = $qb->getQuery();
$query->setHint(
\Doctrine\ORM\Query::HINT_CUSTOM_OUTPUT_WALKER,
'Gedmo\\Translatable\\Query\\TreeWalker\\TranslationWalker'
\Gedmo\Translatable\TranslatableListener::HINT_TRANSLATABLE_LOCALE, $locale
);
return $query->getOneOrNullResult();
}
2 - мое действие конфигурируется с @ParamConverter так:
/**
* @Route("/{slug}", name="name")
* @Template()
* @ParamConverter(
* "content",
* class = "StenikContentBundle:Content",
* options = {
* "mapping" = {"_locale": "locale"},
* "repository_method" = "findByTranslatedSlug"
* }
* )
*/
public function indexAction($content)
{
var_dump($content->getSlug());exit;
}
3 - Основные маршрутизации
stenik_content:
resource: "@StenikContentBundle/Controller/"
type: annotation
prefix: /{_locale}
После попытки получить объект через xxx.localhost/app_dev.php/en/some-slug
Я получаю ошибку доктрины:
Unable to guess how to get a Doctrine instance from the request information.
Я не могу найти то, что вызывает ошибку, возможно, метод хранилища и отображение не могут одновременно использоваться вместе. Вы можете помочь?
Спасибо, но отображение работает только с полями сущностей, и я хочу, чтобы пройти языковой стандарт для TranslatableListener. Есть идеи? –