如何覆盖奏鸣曲管理员中的显示字段

Nom*_*man 7 php symfony sonata-admin

我想显示多个属性的列表Name => value覆盖在单个字段的表中仅用于PortsAdmininShowMapper

Ports实体与PortsAttributes实体映射.

实体的关系是OneToMany具有多个属性的Ports.

管理员视图(编辑操作)

编辑属性列表的视图

显示动作

显示属性列表

我想要更改属性视图与编辑动作相同.

小智 16

您可以为以下内容创建自定义模板PostAttributes:

例:

/* ShowMapper in admin */
$showMapper->add('attributes', null, array(
    'template' => 'YOUR_TEMPLATE.html.twig' // <-- This is the trick
));
Run Code Online (Sandbox Code Playgroud)

在模板中,您可以扩展基本show field(SonataAdminBundle:CRUD:base_show_field.html.twig),并覆盖该field块.名为变量value的数据以twig形式存储数据.

例:

YOUR_TEMPLATE.html.twig

{% extends 'SonataAdminBundle:CRUD:base_show_field.html.twig' %}

{% block field %}
    {% for val in value %}
        {{ val.name }} - {{ val.value }} {# I'm just guessing the object properties #}
        <br/>
    {% endfor %}
{% endblock %}
Run Code Online (Sandbox Code Playgroud)