Как проверить и проверить, есть ли у объекта propel запись i18n? - PullRequest
0 голосов
/ 31 октября 2008

Я использую Symfony и Propel, и я пытаюсь вызвать определенную культуру для объекта и вывести некоторые поля этого объекта на экран в этой конкретной культуре. Однако, если в отображенной записи базы данных объекта нет этих полей в этой конкретной культуре, я бы хотел использовать ее по умолчанию в базовой культуре (в данном случае en_US)

Я делаю это так:

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

Но когда я вывожу такой как это

$currentLesson->getTitle();

Выводит пустую строку, если для нее нет записи о культуре. У меня вопрос, есть ли способ сделать объект по умолчанию для конкретной культивированной точки, если тот, который я указал, недоступен, или есть способ проверить, есть ли у конкретного объекта запись культуры i18n?

примерно так:

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

или

sfConfig::setPropelDefaultCulture("en_US");

Ответы [ 2 ]

1 голос
/ 05 ноября 2008

Вам придется перезаписать сам Symfony, чтобы установить его по умолчанию на другом языке. Здесь хорошее рабочее решение http://www.codemassacre.com/2008/03/10/symfony-default-language-fallback/

0 голосов
/ 09 января 2012

Запись i18n, которую вы получили от getTranslation($language), может быть проверена с помощью isNew(), которая скажет вам, только что Propel только что набрал (true) или она поступила из базы данных (false).

...