使用非默认语言的Doctrine i18n上的getTitle()

时间:2010-06-18 10:49:11

标签: doctrine internationalization

我在使用Doctrine 1.1.6 / Symfony 1.2中的i18n对象获取对象的标题时遇到问题

我有以下Doctrine Table方法:

public function getPlace($place_id, $lang=''){
$q = Doctrine::getTable('Place')
  ->createQuery('p');

if($lang != '')
  $q = $q->leftJoin('p.Translation ptr')
    ->addWhere('ptr.lang = ?', $lang);

return $q->addWhere('p.id = ?', $place_id)
    ->fetchOne();

}

然后在视图文件上,如果我执行$ place-> getTitle(),它会以我想要的语言正确打印标题。但是,如果我对某个动作执行$ place-> getTitle()则不返回任何内容,我必须执行$ place->翻译['es'] - > title以获得西班牙语的标题。如果我使用默认语言('en')$ place-> getTitle()可以使用。

如何让$ place-> getTitle()始终有效?

谢谢!

1 个答案:

答案 0 :(得分:0)

我没有发现为什么它不起作用;所以我现在做$ place->翻译[$ lang] - > title以获得我想要的语言的标题。