Propel 객체에 i18N 레코드가 있는지 확인하고 어떻게 확인합니까?
-
05-07-2019 - |
문제
나는 Symfony와 Propel을 사용하고 있으며, 객체에 특정 문화를 호출하고 해당 특정 문화의 화면에 해당 물체의 일부 필드를 출력하려고합니다. 그러나 객체의 매핑 된 데이터베이스 레코드에 해당 특정 문화에 해당 필드가 없으면 기본 문화 (이 경우 EN_US)에 기본값을 원합니다.
나는 이것을하고있다 :
$currentLesson = $currentLesson->getCurrentLessonsI18n($lessonCulture);
그러나 내가 이와 같이 출력 할 때
$currentLesson->getTitle();
문화 기록이 없으면 빈 줄을 출력합니다. 내 질문은, 내가 지정한 것이 사용 가능한 경우 특정 객체에 Culture i18N 레코드가 있는지 확인하는 방법이 있습니까?
이 같은:
if($currentLesson->cultureExists($lessonCulture) $currentLesson = $currentLesson->getCurrentLessonsI18n($lessonCulture);
또는
sfConfig::setPropelDefaultCulture("en_US");
해결책
다른 언어로 기본적으로 Symfony 자체를 덮어 써야합니다. 여기에 좋은 작업 솔루션이 있습니다 http://www.codemassacre.com/2008/03/10/symfony-default-language-fallback/
다른 팁
그만큼 i18n
당신이 돌아 오는 기록 getTranslation($language)
테스트 할 수 있습니다 isNew()
, Propel이 방금 만들었는지 알려줄 것입니다. (true)
또는 데이터베이스에서 온 경우 (false)
.
제휴하지 않습니다 StackOverflow