Tôi cần tìm nạp danh sách các quốc gia, được sắp xếp theo thứ tự bảng chữ cái. Vì tôi có thực thể được dịch sang bốn ngôn ngữ (tiếng Anh, tiếng Pháp, tiếng Tây Ban Nha và tiếng Trung), tôi đã sử dụng gedmo doctrine extensions để quản lý bản dịch. Vấn đề là khi tôi lấy danh sách này trong một loại lĩnh vực hình thức tổ chức:Tạo truy vấn trong trường biểu mẫu thực thể
$form = $builder->add('country', 'entity',
array('class' => 'GroupCommonBundle:Country',
'query_builder' => function(EntityRepository $er) {
$query = $er->createQueryBuilder('c')->orderBy('c.name');
}
kết quả đều được sắp xếp như một thực thể ban đầu được xác định (tiếng Anh) chứ không phải hiện tại địa phương (Tây Ban Nha hoặc tiếng Pháp), những gì là tôi thực sự cần. Trên thực tế tôi sử dụng $this->container->getParameter('locale')
tôi đã cố gắng để buộc một cái móc trong truy vấn, như được giải thích here:
$query->getQuery()->setHint(\Gedmo\Translatable\TranslatableListener::HINT_TRANSLATABLE_LOCALE, $this->container->getParameter('locale'));
nhưng AFAIK, điều này chỉ hoạt động khi truy vấn được viết như 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'));
không được biểu mẫu thực thể cho phép, vì nó đang đợi queryBuilder object.
Vì vậy, tôi cần phải dịch bộ sưu tập của mình và được sắp xếp theo ngôn ngữ hiện tại của anh ấy dưới dạng. Bất cứ ai cũng biết làm thế nào điều này có thể đạt được?
Cách dịch đúng các trường được chọn: http://stackoverflow.com/a/14150093/1232526 – Noy
@Noy: Anh ấy đang nói về một trường hợp nâng cao hơn nhiều, liên quan đến các thực thể dịch Gedmo. Cách được đề xuất của bạn không áp dụng ở đây. – Ryall