Customize Template for One Field
Keep on Learning!
If you liked what you've learned so far, dive in! Subscribe to get access to this tutorial plus video, code and script downloads.
We already customized the template used for every field whose data type is id. But you can also go deeper, and customize the way that just one specific field is rendered.
For example, let's say we need to customize how the "full name" field is rendered.
No problem: in config.yml
, find User
, list
, fields
, and change fullName
to the expanded configuration. To control the template add... surprise! A template
option set to, how about, _field_user_full_name.html.twig
:
// ... lines 1 - 80 | |
easy_admin: | |
// ... lines 82 - 91 | |
entities: | |
// ... lines 93 - 117 |
Copy that name. It expects this to live in the standard easy_admin
directory.
Create it there!
Since this is a template for one field, it will have access to the User
object as
an item
variable. And that makes life easy. Add if item.isScientist
- that's
a property on User
- then add a cool graduation cap:
{% if item.isScientist %} | |
<i class="fa fa-graduation-cap"></i> | |
{% endif %} | |
// ... lines 4 - 6 |
Below, print the full name. To do that, you can use a value
variable. Pipe it
through |default('Stranger')
, just in case the user doesn't have any name data:
{% if item.isScientist %} | |
<i class="fa fa-graduation-cap"></i> | |
{% endif %} | |
{{ value|default('Stranger') }} |
Try it! Yes! We now know how to customize entire page templates - like list.html.twig
,
templates for a specific field type, or the template for just one field.
Time to move into forms!
Hey thank you for the amazing tutorial,
The idea is to edit a value even a string or a number, directy from the datatable view via ajax call? like the checkbox (true or false) button, so i will be so happy if you give me some steps to implement the idea :)
THank you cheers,