symfony - SonataAdminBundle 中的数组类型

标签 symfony sonata-admin

在 Symfony 2.3 中,我使用 SonataAdminBundle。在我的实体中,我有以下字段:

/**
 * @var array
 * @ORM\Column(name="testimonial", type="array" )
 */
protected $testimonials;

在我的管理类中,当我尝试使用以下内容呈现表单或列表时

->add('testimonials')

表单和列表中不会有任何输入,这会导致数组到字符串异常。

我连续保存了类似的感言

array(
     'title' => 'test'
     'author' => 'test'
);

那么让它发挥作用的最佳方法是什么?对于我的表单,我只需要一个简单的文本字段,我可以填写我的数组。另外,整个数组应该显示在 show/listing 中。

谢谢

最佳答案

您应该使用Data Transformers 。在这种情况下,您将能够管理如何呈现数组类型以及如何在数据库中保留该类型的表单数据。

最后,您的 SonataAdmin 表单映射器将如下所示:

->add($formMapper->create('testimonials', 'fieldType')
    ->addViewTransformer($someTransformer)
)

关于symfony - SonataAdminBundle 中的数组类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17548551/

相关文章:

CSS奏鸣曲管理员

symfony - 奏鸣曲管理员 : replace ID in breadcrumbs

symfony - 我如何知道 SonataAdminBundle 中 ListMapper->add() 的第三个参数有哪些选项可用

symfony - 使用 SonataAdminBundle 表单中的 Sonata_type_collection 禁用 'add'

symfony - 您可以在同一实体的不同索引中定义两个或多个类型吗?

php - 教义 findOneBy 方法不起作用

symfony - 无法安装奏鸣曲管理包

php - 如何替换 Jms Payment Paypal Bundle 中的文本

Symfony 和 PhpUnit 内存泄漏

symfony - Sonata Admin Bundle 仪表板过滤器实体来自角色和 DDBB 权限