我有一個問題,我無法從我的i18n教義對象中檢索特定的翻譯。如果我打電話$object->getName();
,我會按照預期在當前文化中獲得該名稱。但是,如果我希望在不切換用戶文化的情況下檢索特定翻譯... $object->getName('fr');
在此示例中,我仍然使用當前的文化而不是法語。這$object->getTranslation()->fr->name;
雖然工作。我究竟做錯了什麼?是不是$object->getName($culture);
正確的方法來做到這一點?symfony i18n objects(Doctrine)獲取特定文化
這裏是我的架構相關的部分,如果這是有幫助的:
Object:
actAs:
Timestampable: ~
I18n:
fields: [name, description]
columns:
name: { type: string(255), notnull: true }
description: { type: string(1000) }
user_id: { type: integer }
relations:
User: { class: sfGuardUser, local: user_id, foreign: id, type: one, foreignType: many, foreignAlias: Objects }
所以是$ object-> getName('fr'); symfony 1.0的方式?我在這個印象之下,這也應該爲1.4工作。 – Zach 2013-02-22 15:09:19
好吧,我必須有東西安裝錯誤......當我嘗試你的第一個解決方案時,我得到:未知的方法ObjectTranslation :: getName。如果我使用 - >名稱而不是 - > getName(),它可以工作。當我嘗試你的第二個解決方案時,我得到:「對象」上的未知記錄屬性/相關組件「翻譯」我之前從來沒有做過這類事情的任何問題,但我主要在symfony 1.0網站上工作,所以也許我是隻是缺少一些關鍵的1.4步驟。 – Zach 2013-02-22 15:37:24