Is it possible to add a translatable association in Sonata Admin Bundle?
是否可以在 Sonata Admin 中使用 DoctrineBehaviors 可翻译功能添加可翻译关联?
我的意思是,类似这样的:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | // 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\\'是可翻译字段,与其他实体相关联:
1 2 3 4 5 6 7 | // 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 的每种不同语言创建一个不同的图库。所以,我可以通过这种方式实现:
1 2 3 4 5 6 7 8 9 | # InfoPageAdmin.php ->add('translations', 'a2lix_translations', [ 'fields' => [ 'gallery' => [ 'field_type' => 'entity', 'class' => 'AppBundle:Gallery', ], ], ]) |
这里,Gallery 是 InfoPage 实体的字段:
1 2 3 4 5 6 | # 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。