문제

나는 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).

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top