알파벳순으로 정렬 된 국가 목록을 가져와야합니다. 엔티티가 4 개 국어 (영어, 프랑스어, 스페인어 및 중국어)로 번역 되었기 때문에 번역을 관리하기 위해 gedmo doctrine extensions을 사용했습니다. 나는 엔티티 양식 필드 유형이 목록을 가져올 때 문제가 : 원래 엔티티 (스페인어 또는 프랑스어) (영어) 및 최신이 아닌 로케일을 정의엔티티 양식 필드에서 쿼리 만들기
$form = $builder->add('country', 'entity',
array('class' => 'GroupCommonBundle:Country',
'query_builder' => function(EntityRepository $er) {
$query = $er->createQueryBuilder('c')->orderBy('c.name');
}
결과가 분류되어, 난 정말 무엇을 필요로한다. 사실은 내가 사용 $this->container->getParameter('locale')
:
$query->getQuery()->setHint(\Gedmo\Translatable\TranslatableListener::HINT_TRANSLATABLE_LOCALE, $this->container->getParameter('locale'));
하지만를 AFAIK, 쿼리가 DQL으로 기록이 유일한 작품 :
$query = $this->getDoctrine()->getManager()->createQuery('
SELECT c
FROM GroupCommonBundle:Country c
ORDER BY c.name ASC');
$query->setHint(\Gedmo\Translatable\TranslatableListener::HINT_TRANSLATABLE_LOCALE, $this->container->getParameter('locale'));
을 기다리고 있기 때문에 제출 된 엔티티 양식에서 허용하지 않는
입니다.
그래서 내 컬렉션을 번역하고 양식의 현재 언어로 정렬해야합니다. 누구든지 이것이 어떻게 달성 될 수 있는지 알고 있습니까?
선택 필드를 번역하는 올바른 방법은 다음과 같습니다. http://stackoverflow.com/a/14150093/1232526 – Noy
@ 노이 : 그는 Gedmo 번역 가능 항목과 관련된 훨씬 더 고급 사례에 대해 이야기합니다. 귀하가 제안한 방법은 여기에 해당되지 않습니다. – Ryall