【发布时间】:2016-01-13 07:17:26
【问题描述】:
我想在覆盖单个字段的表中显示多个属性名称 => 值的列表,该字段仅适用于 ShowMapper 中的 PortsAdmin
Ports Entity 与 PortsAttributes Entity 映射。
实体的关系是OneToMany具有多个属性的端口。
管理员视图(编辑操作)
显示动作
我希望更改属性视图与编辑操作相同。
【问题讨论】:
标签: php symfony sonata-admin
我想在覆盖单个字段的表中显示多个属性名称 => 值的列表,该字段仅适用于 ShowMapper 中的 PortsAdmin
Ports Entity 与 PortsAttributes Entity 映射。
实体的关系是OneToMany具有多个属性的端口。
管理员视图(编辑操作)
显示动作
我希望更改属性视图与编辑操作相同。
【问题讨论】:
标签: php symfony sonata-admin
您可以为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 %}
【讨论】:
template 属性仅适用于 symfony 3.1 是否有另一种方法可以覆盖 show_field 视图?
@SlimenTN 您可以尝试在模板文件中更改此行:
{% extends 'SonataAdminBundle:CRUD:base_show_field.html.twig' %}
用这个:
{% extends '@SonataAdmin/CRUD/base_show_field.html.twig' %}
其余代码似乎没问题(我在 SF4 项目中也有同样的代码)
【讨论】: