2015-07-20 5 views
1

Можно ли добавить переводную ассоциацию в Sonata Admin, используя функцию DoctrineBehaviors Translatable?Можно ли добавить переводную ассоциацию в Sonata Admin Bundle?

Я имею в виду, что-то вроде этого:

// InfoPageAdmin.php 

->add('translations', 'a2lix_translations', [ 
    'fields' => [ 
     'title' => [ 
      'field_type' => 'text' 
     ], 
     'content' => [ 
      'field_type' => 'ckeditor', 
      'config_name' => 'default' 
     ], 
     'slideshow' => [ 
      'field_type' => 'sonata_type_model_list' 
     ] 
    ] 
]) 

Где слайд-шоу 'является переводимый поле, связанный с другим объектом:

// InfoPageTranslation.php 

/** 
* @ORM\ManyToOne(targetEntity="AppBundle\Entity\PictureCollection", cascade={"persist"}, fetch="EAGER") 
* @ORM\JoinColumn(name="slideshow_id", referencedColumnName="id") 
*/ 
protected $slideshow; 

я получил следующее сообщение об ошибке:

ContextErrorException: Catchable Fatal Error: Argument 1 passed to Sonata\AdminBundle\Form\DataTransformer\ModelToIdTransformer::__construct() must implement interface Sonata\AdminBundle\Model\ModelManagerInterface, null given, called in D:\XAMPP\htdocs\mega\app\cache\dev\classes.php on line 13492 and defined in D:\XAMPP\htdocs\mega\app\cache\dev\classes.php line 12628

Надеюсь, что мой вопрос ясен.

Спасибо!

ответ

1

Ну, я нашел простой способ решить проблему. Например, я хотел бы иметь другую Галерею для каждого языка InfoPage. Таким образом, я могу добиться того, что таким образом:

# InfoPageAdmin.php 
->add('translations', 'a2lix_translations', [ 
    'fields' => [ 
     'gallery' => [ 
      'field_type' => 'entity', 
      'class' => 'AppBundle:Gallery', 
     ], 
    ], 
]) 

Здесь галерея поля Инфостраницы объекта:

# AppBundle/Entity/InfoPage.php 
/** 
* @ORM\ManyToOne(targetEntity="AppBundle\Entity\Gallery", cascade={"persist"}, fetch="EAGER") 
* @ORM\JoinColumn(name="gallery_id", referencedColumnName="id") 
*/ 
protected $gallery; 

Я надеюсь, что мой ответ поможет кому-то. :)

Редактировать: Если вы хотите использовать «sonata_type_model_list» в переводах, здесь описывается рабочий обход: https://github.com/a2lix/TranslationFormBundle/issues/155.