I want show the list of multiple attributes Name => value in a table overriding single field of only for PortsAdmin
in ShowMapper
Ports
Entity mapped with PortsAttributes
Entity.
Relation of entity is OneToMany
Ports with multiple attributes.
Admin View (Edit Action)
Show Action
I want change attribute view same as edit Action.
Advertisement
Answer
You can create a custom template for the PostAttributes
:
Example:
/* ShowMapper in admin */ $showMapper->add('attributes', null, array( 'template' => 'YOUR_TEMPLATE.html.twig' // <-- This is the trick ));
In your template, you can extend the base show field (SonataAdminBundle:CRUD:base_show_field.html.twig
or @SonataAdmin/CRUD/base_show_field.html.twig
for symfony > 4.0), and override the field
block. The variable named value
stores the data in twig.
Example:
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 %}