簡體   English   中英

如何覆蓋奏鳴曲管理員中的顯示字段

[英]How to override Show field in sonata admin

我想在表中顯示多個屬性名稱 => 值的列表,以覆蓋ShowMapper中僅用於PortsAdmin的單個字段

Ports實體映射到PortsAttributes實體。

實體的關系是具有多個屬性的OneToMany端口。

管理員視圖(編輯操作)

編輯屬性列表視圖

顯示動作

顯示屬性列表

我想要更改屬性視圖與編輯操作相同。

您可以為PostAttributes創建自定義模板:

例子:

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

在您的模板中,您可以擴展基本顯示字段(對於 symfony > 4.0, SonataAdminBundle:CRUD:base_show_field.html.twig@SonataAdmin/CRUD/base_show_field.html.twig ),並覆蓋field塊。 名為value的變量將數據存儲在 twig 中。

例子:

YOUR_TEMPLATE.html.twig

{% extends 'SonataAdminBundle:CRUD:base_show_field.html.twig' %}
{# for sf > 4.0 #}
{#  {% extends '@SonataAdmin/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 項目中有相同的代碼)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM