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

时间:2016-01-13 07:17:27

标签: php symfony sonata-admin

我想显示多个属性的列表Name =>覆盖PortsAdmin

ShowMapper的单个字段的表格中的值

Ports实体与PortsAttributes实体映射。

实体的关系是具有多个属性的OneToMany端口。

管理员视图(编辑操作)

Edit View of attributes listing

显示操作

Show list of attributes

  

我希望更改属性视图与编辑操作相同。

2 个答案:

答案 0 :(得分:15)

您可以为PostAttributes

创建自定义模板

示例:

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

在模板中,您可以扩展基本节目字段(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 %}

答案 1 :(得分:0)

@SlimenTN,您可以尝试在模板文件中更改此行:

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

与此:

{% extends '@SonataAdmin/CRUD/base_show_field.html.twig' %}

其余的代码似乎还可以(我在SF4项目中也一样)