simple_array 使用 SonataAdminBundle 处理

simple_array handling with SonataAdminBundle

我的实体有一个来自类型 simple_array 的 属性,存储用户生成的字符串列表(因此 choice 不适用)。

来自实体的相关部分:

/**
 * @var array
 *
 * @ORM\Column(type="simple_array")
 */
private $tags;

我想使用 SonataAdminBundle 来显示、创建和编辑带有标签的实体:

protected function configureFormFields(FormMapper $formMapper)
{
    $formMapper
        ->add('tags', 'collection');
}

protected function configureListFields(ListMapper $listMapper)
{
    $listMapper
        ->add('tags', 'array');
}

该列表有效,但在我希望显示 Tag1, Tag2 的地方显示 [0 => Tag1, 1 => Tag2]。创建和编辑根本不起作用,在标签的输入字段应该显示的地方什么也没有显示。

明确一点:标签不是相关实体,它们只是一个字符串数组!

对于add/edit你的标签,我推荐这个通用解决方案


要根据需要在列表模式下自定义数组值(默认情况下),只需覆盖 SonataAdminBundle 中的 list_array.html.twig 模板,如下所示:

{% extends admin.getTemplate('base_list_field') %}

{% block field %}
    {{ value|join(', ') }}
{% endblock %}