是否可以使用DoctrineBehaviors可翻译功能在Sonata Admin中添加可翻译关联?
我的意思是,类似的东西:
// 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:传递给的参数1 索纳塔\ AdminBundle \表格\ DataTransformer \ ModelToIdTransformer :: __结构() 必须实现接口 Sonata \ AdminBundle \ Model \ ModelManagerInterface,null给定,调用 第13492行的D:\ XAMPP \ htdocs \ mega \ app \ cache \ dev \ classes.php 在D:\ XAMPP \ htdocs \ mega \ app \ cache \ dev \ classes.php第12628行中定义
我希望我的问题很明确。
谢谢!
答案 0 :(得分:1)
好吧,我找到了解决问题的简单方法。例如,我想为InfoPage的每种不同语言使用不同的Gallery。所以,我可以这样做:
# InfoPageAdmin.php
->add('translations', 'a2lix_translations', [
'fields' => [
'gallery' => [
'field_type' => 'entity',
'class' => 'AppBundle:Gallery',
],
],
])
这里,Gallery是InfoPage实体的字段:
# 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。