我正在使用symfony和propel,我正在尝试在对象上调用特定的文化,并将该对象的某些字段输出到该特定文化中的屏幕。但是,如果对象的映射数据库记录在该特定文化中没有这些字段,我希望它默认为基本文化(在本例中为en_US)

我这样做:

$currentLesson = $currentLesson->getCurrentLessonsI18n($lessonCulture);

但是当我输出如此

$currentLesson->getTitle();

如果没有文化记录,它会输出一个空字符串。我的问题是,如果我指定的对象不可用,或者是否有方法来查看特定对象是否具有文化i18n记录,是否有办法使对象默认为特定文件?

类似的东西:

if($currentLesson->cultureExists($lessonCulture) $currentLesson = $currentLesson->getCurrentLessonsI18n($lessonCulture);

sfConfig::setPropelDefaultCulture("en_US");
有帮助吗?

解决方案

您必须覆盖symfony本身才能使其默认使用其他语言。 这里有一个很好的工作解决方案 http://www.codemassacre的.com / 2008/03/10 / symfony的默认语言 - 回退/

其他提示

您从 getTranslation($ language)返回的 i18n 记录可以使用 isNew()进行测试,这将告诉您是否Propel刚刚编写了(true),或者它来自数据库(false)

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top