2

I'm using gedmo translatable extension for symfony2.

When listing records in other language (not default language for site) i want to do not list if the translation does not exists for that record.

For example, if user has changed site language to English, but i did not translate my entity to English, in a listing page just show the records that translated to english.

My Code:

    $qb = $em->createQueryBuilder();
    $qb
        ->select('p')
        ->from('ATLBlogBundle:Blog','p')
        ->where(
            $qb->expr()->eq('p.visible', 1)
        )
        ->setFirstResult($offset)
        ->setMaxResults($limit)
        ->orderBy('p.id','DESC');


    $query = $qb->getQuery();

    $query
        ->setHint(\Gedmo\Translatable\TranslatableListener::HINT_TRANSLATABLE_LOCALE, $request->getLocale())
        ->setHint(\Gedmo\Translatable\TranslatableListener::HINT_FALLBACK, true)
        ->setHint(\Doctrine\ORM\Query::HINT_CUSTOM_OUTPUT_WALKER, 'Gedmo\\Translatable\\Query\\TreeWalker\\TranslationWalker');

    $data["blog"] = $query->getResult();

How can i do that?

Canser Yanbakan
  • 3,780
  • 3
  • 39
  • 65

0 Answers0