Использование переводимого учения вместе с формами Symfony 2 - PullRequest
5 голосов
/ 04 октября 2011

У меня есть Entity в моем приложении, которое имеет 2 переводимых поля, используя Doctrine Transurable Extension:

class Page implements Translatable
{
    /......

    /**
     * @var string $name
     * @Gedmo\Translatable
     * @ORM\Column(name="name", type="string", length=255)
     */
    private $name;

    /**
     * @var text $content
     * @Gedmo\Translatable  
     * @ORM\Column(name="content", type="text")
     */
    private $content; 

 /........
}

Я использую одну таблицу для перевода нескольких объектов. Теперь я хотел бы использовать одну форму, чтобы получить исходные и переведенные (на 1 язык) значения для этих атрибутов, поэтому в нем должно быть 4 поля.

Я определил новую форму, производную от AbstractType, и попытался добавить эти 2 поля, используя FormBuilder, но он говорит, что их соответствующие объекты не содержат этих полей. Я попытался добавить эти поля к сущностям и объявить для них методы получения, но единственный способ, которым я знаю, чтобы получить переводы для сущностей, - это использовать выделенный диспетчер сущностей и AFAIK, обеспечивающий доступ менеджера сущностей к сущности, - не очень хорошая практика. *

Есть ли способ использовать формы для обработки таких вещей?

1 Ответ

2 голосов
/ 26 января 2014

Я знаю, что это старый вопрос, но все равно.

Вы можете поместить поля для переведенного контента, используя FormBuilder с атрибутом:

array('mapped'=>false)

Взять данные так:

$form->get('field_name')->getData();

и затем сохраните это так

https://github.com/l3pp4rd/DoctrineExtensions/blob/master/doc/translatable.md#multi-translations

Надеюсь, это кому-нибудь поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...