Intereting Posts

Объекты symfony i18n (Doctrine) получают определенную культуру

У меня проблема, когда я не могу получить конкретный перевод с моих объектов доктрины i18n. Если я вызову $object->getName(); Я получаю имя в текущей культуре, как и ожидалось. Однако, если я хочу получить конкретный перевод без переключения пользовательской культуры … $object->getName('fr'); В этом примере я по-прежнему получаю текущую культуру вместо французского. Это имя $object->getTranslation()->fr->name; действительно работает. Что я делаю не так? Не $object->getName($culture); правильный способ сделать это?

Вот важная часть моей схемы, если это полезно:

 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 } 

 $this->Translation['fr']->getName() 

альтернативно:

 $translations = $this->getTranslations(); $translations['fr']->getName(); 

Эта почти такая же проблема, как и на ваш другой вопрос , используйте:

 $object->Translation['fr']->name; $object->Translation['en']->name; $object->Translation['it']->name; // etc ... 

Я цитирую комментарий, который я отправляю по другому вопросу:

->getName() работает, если вы находитесь в объекте direclty, например $object->getName() . Но если вы столкнетесь с отношением Translation, я никогда не использовал getter для получения значения.

Кстати, я не помню, что мы можем использовать этот $object->getName('fr'); с sf1.0.