كيف يمكنك أن تحقق ومعرفة ما إذا كان الكائن إدفع لديه سجل I18N؟
-
05-07-2019 - |
سؤال
وأنا باستخدام symfony لودفع، وأنا أحاول أن استدعاء ثقافة معينة على كائن وإخراج بعض الحقول من هذا الكائن إلى الشاشة في تلك الثقافة محددة. ومع ذلك، إذا لم يكن لديك سجل قاعدة البيانات تعيين الكائن تلك الحقول في تلك الثقافة محددة، وأود أن الافتراضية للثقافة قاعدة (في هذه الحالة، en_US)
وأنا أفعل ذلك كما يلي:
$currentLesson = $currentLesson->getCurrentLessonsI18n($lessonCulture);
ولكن عندما الإخراج I مثل هذا
$currentLesson->getTitle();
وذلك بإخراج سلسلة فارغة إذا لم يكن هناك سجل الثقافة لذلك. سؤالي هو، هل هناك طريقة لجعل الافتراضي الكائن إلى culuture خاصة إذا كان واحد يمكنني تحديد غير متوفر، أو أن هناك طريقة لمعرفة ما إذا كان كائن معين له سجل الثقافة I18N؟
وشيء من هذا القبيل:
if($currentLesson->cultureExists($lessonCulture) $currentLesson = $currentLesson->getCurrentLessonsI18n($lessonCulture);
أو
sfConfig::setPropelDefaultCulture("en_US");
المحلول
وسيكون لديك للكتابة في symfony نفسه لجعله الافتراضي إلى لغة أخرى. ثيريس حل عمل جيد هنا HTTP: //www.codemassacre كوم / 2008/03/10 / symfony لالافتراضية باللغة-تراجع /
نصائح أخرى
وسجل i18n
تحصل على العودة من getTranslation($language)
يمكن اختبارها مع isNew()
، من شأنها أن أقول لكم إذا إدفع أدلى به للتو عنه (true)
أو إذا جاء من (false)
قاعدة البيانات.