Данная заметка не открывает ничего нового, тем не менее, подобные вопросы постоянно возникают, в том числе и у меня.
Суть проблемы: есть i18n таблица (вернее пара таблиц, например content и content_translation). Хочется быстро и просто сделать в админке редактирование данных для нескольких языков.
Оказывается, Doctrine form “из коробки” это умеет. Необходимо лишь выполнить несложное конфигурирование:
<?php class ContentForm extends BaseContentForm { public function configure() { // ... $this->embedI18n(array('en', 'ru')); $this->widgetSchema->setLabel('en', 'Английская версия'); $this->widgetSchema->setLabel('ru', 'Русская версия'); // ... } } ?>
Этот прием описан в Jobeet, день 19: http://www.symfony-project.org/jobeet/1_4/Doctrine/en/19#chapter_19_sub_admin_generator, но, похоже, мало кто дочитывает до этого места.
попал сюда надеясь увидеть решение грабли почему такие формы вдруг перестали работать…
а именно при редактировании редактировании записи с двумя переводами почемуто всё валится с ошибкой что MySQL не может найти у себя поле… которое пропискно как I18n: fields[‘title’]…
почемуто толи доктрина, толи генерённая админка вдруг забывает что это поле переводное… и тащит его из основной таблицы…
ререлиз sf 1.4.6 (откат на 1.4.5 не исправил ситуацию)
Что-то у вас определено не так. У меня заработало “из коробки”. Я не думаю что проблема в symfony. Во всяком случае это не первая по распространенности причина ошибок. Хотя почему-то все в первую очередь грешат именно на фреймворк )
Ммм. Эта тема не называется “решение проблем” как вы наверное заметили ) И ваши ожидания с реальным положением дел не имеют ничего общего.
да, оказался частный случай… но просто было забавно.
а почему на фремворк… пустой проект, 1 файл модели… генерим всё, генерим админку… и опа… =)
—
спасиб за быстрые ответы =)
грабель решился… оказалось влиял порядок прописаных в модели шаблонов доктрины(actAs)
примечательно что вот этот пример модели как раз не завёлся…
http://www.doctrine-project.org/projects/orm/1.2/docs/manual/behaviors/en#nesting-behaviors
—
эту беседу меня с собой можно удалить =)
Мне она не мешает ) Т.е. хватило изменить порядок шаблонов?
да… как всегда ответ оказвается банальным… =)
но как не приятно когда “вот тут оно работает”, “а вот точно такое, НЕТ!” =)
hudson, может ты знаешь рецепт как в админгенераторе редактировать не все переводы, а выборочно по одному?… иначе когда 13 языков оно… э… не удобно… =)
по теме: “Symfony: выборочная I18n для объектов Doctrine [Перевод]”
http://www.charnad.com/blog/symfony-vyborochnaya-i18n-dlya-obektov-doctrine/
(закладочка)
Да, Викторас полезную статейку написал! )