是否可以在Sonata管理中添加一个可翻译的关联,使用DoctrineBehaviors可翻译的功能?
我的意思是,像这样的东西:
// 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'
]
]
])
其中'slideshow'是可翻译字段,与其他实体相关联:
// InfoPageTranslation.php
/**
* @ORMManyToOne(targetEntity="AppBundleEntityPictureCollection", cascade={"persist"}, fetch="EAGER")
* @ORMJoinColumn(name="slideshow_id", referencedColumnName="id")
*/
protected $slideshow;
我得到了以下错误:
contextroreexception: Catchable致命错误:参数1传递给奏鸣曲 AdminBundle DataTransformer ModelToIdTransformer形式::__construct ()必须实现接口奏鸣曲AdminBundleModelModelManagerInterface, null给定,调用D:XAMPPhtdocsmegaappcachedevclasses.php定义在D:XAMPPhtdocsmegaappcachedevclasses.php line 12628
我希望我的问题很清楚。
谢谢!
嗯,我找到了解决这个问题的简单方法。例如,我希望有一个不同的画廊为每一个不同的语言的infpage。所以,我可以这样做:
# InfoPageAdmin.php
->add('translations', 'a2lix_translations', [
'fields' => [
'gallery' => [
'field_type' => 'entity',
'class' => 'AppBundle:Gallery',
],
],
])
这里,Gallery是infpage实体的字段:
# AppBundle/Entity/InfoPage.php
/**
* @ORMManyToOne(targetEntity="AppBundleEntityGallery", cascade={"persist"}, fetch="EAGER")
* @ORMJoinColumn(name="gallery_id", referencedColumnName="id")
*/
protected $gallery;
我希望我的回答能帮助到别人。:)
编辑:如果您想在翻译中使用'sonata_type_model_list',这里描述了工作解决方案:https://github.com/a2lix/TranslationFormBundle/issues/155.