是否可以在 Sonata Admin Bundle 中添加可翻译的关联?
Is it possible to add a translatable association in Sonata Admin Bundle?
是否可以使用 DoctrineBehaviors Translatable 功能在 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'
]
]
])
其中 'slideshow' 是可翻译字段,与其他实体关联:
// 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
我希望我的问题很清楚。
谢谢!
好吧,我找到了解决问题的简单方法。例如,我想为每种不同语言的 InfoPage 设置一个不同的图库。所以,我可以通过这种方式实现:
# 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.
是否可以使用 DoctrineBehaviors Translatable 功能在 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'
]
]
])
其中 'slideshow' 是可翻译字段,与其他实体关联:
// 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
我希望我的问题很清楚。
谢谢!
好吧,我找到了解决问题的简单方法。例如,我想为每种不同语言的 InfoPage 设置一个不同的图库。所以,我可以通过这种方式实现:
# 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.