/** * Load message for specified domain & id. * @param string $id * @param string $domain * @param string $locale * @return \AO\TranslationBundle\Translation\Message */ public function loadMessage($id, $domain, $locale) { $qb = $this->em->createQueryBuilder(); $qb->select('m, t')->from('\\AO\\TranslationBundle\\Entity\\Message', 'm')->join('m.domain', 'd')->leftJoin('m.translations', 't', 'WITH', 't.locale = :locale')->where('m.identification = :id AND d.name=:domain')->setParameters(array('id' => $id, 'domain' => $domain, 'locale' => $locale)); $m = $qb->getQuery()->getOneOrNullResult(); $message = new Message($id, null, $domain); if ($m) { $message->setParameters($m->getParameters()); $message->setStatus('not_cached'); $message->setEntity($m); if ($translation = $m->getLocaleTranslation($locale)) { $message->setContent($translation->getContent()); } } return $message; }