2008-10-30 13 views
0

J'utilise symfony et propel, et j'essaye d'invoquer une culture spécifique sur un objet et de sortir des champs de cet objet à l'écran dans cette culture spécifique. Cependant, si le dossier de mappée de l'objet ne modifie pas les champs dans cette culture spécifique, je voudrais à défaut à la culture de base (dans ce cas, en_US)Comment vérifiez-vous et voyez si un objet Propel a un enregistrement i18n?

que je fais comme ceci:

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

Mais quand la sortie I telle que cette

$currentLesson->getTitle(); 

il émet une chaîne vide s'il n'y a pas d'enregistrement de la culture pour elle. Ma question est, y at-il un moyen de rendre un objet par défaut à une culture spécifique si celle que je spécifie n'est pas disponible, ou existe-t-il une méthode pour voir si un objet spécifique a un enregistrement i18n de culture?

quelque chose comme ceci:

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

ou

sfConfig::setPropelDefaultCulture("en_US"); 

Répondre

0

Le i18n enregistrement que vous revenez de getTranslation($language) peut être testé avec isNew(), qui vous dira si Propel vient de le haut (true) ou si elle venait de la base de données (false).