如何覆盖奏鸣曲管理员中的显示字段
How to override Show field in sonata admin
我想在 table 中显示多个属性的列表 Name => value 仅在 ShowMapper
中覆盖 PortsAdmin
的单个字段
Ports
实体映射到 PortsAttributes
实体。
实体关系是OneToMany
具有多个属性的端口。
管理员视图(编辑操作)
显示动作
I want change attribute view same as edit Action.
您可以为 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 %}
@SlimenTN 你可以尝试更改模板文件中的这一行:
{% extends 'SonataAdminBundle:CRUD:base_show_field.html.twig' %}
有了这个:
{% extends '@SonataAdmin/CRUD/base_show_field.html.twig' %}
其余代码似乎没问题(我在 SF4 项目中有相同的代码)
我想在 table 中显示多个属性的列表 Name => value 仅在 ShowMapper
PortsAdmin
的单个字段
Ports
实体映射到 PortsAttributes
实体。
实体关系是OneToMany
具有多个属性的端口。
管理员视图(编辑操作)
显示动作
I want change attribute view same as edit Action.
您可以为 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 %}
@SlimenTN 你可以尝试更改模板文件中的这一行:
{% extends 'SonataAdminBundle:CRUD:base_show_field.html.twig' %}
有了这个:
{% extends '@SonataAdmin/CRUD/base_show_field.html.twig' %}
其余代码似乎没问题(我在 SF4 项目中有相同的代码)