Sonata AdminBundle - 在 config.yml 中重写操作按钮模板
SonataAdminBundle - rewrite action button teplates in config.yml
我自定义了操作按钮模板(显示、编辑和删除),目前正在从管理员内部调用它们 class。
->add('_action', 'actions', array(
'actions' => array(
'show' => array('template' => 'IndexBundle:Admin:action/show.html.twig'),
'edit' => array('template' => 'IndexBundle:Admin:action/edit.html.twig'),
'delete' => array('template' => 'IndexBundle:Admin:action/delete.html.twig')
)
));
但是我希望这些模板能够重写配置文件中的默认模板,而不是在每个管理员中定义模板。不幸的是,文档没有提到全局重写默认操作模板。有办法吗?
sonata_admin:
templates:
...
如果在“app”目录中定义新文件,您可以重写任何包的任何部分。
对于您的示例,如果您只想重写默认按钮模板,您可以这样做:
{# app/Resources/SonataAdminBundle/views/CRUD/list__action_edit.html.twig #}
{% if admin.isGranted('EDIT', object) and admin.hasRoute('edit') %}
<a href="{{ admin.generateObjectUrl('edit', object) }}" class="btn btn-sm btn-default edit_link" title="{{ 'action_edit'|trans({}, 'SonataAdminBundle') }}">
{# icon was here #}
{{ 'action_edit'|trans({}, 'SonataAdminBundle') }}
</a>
{% endif %}
使用:
- list__action_delete.html.twig 删除按钮
- list__action_edit.html.twig 编辑按钮
- list__action_show.html.twig 用于显示操作按钮
您可以在 /vendor/sonata-project/admin-bundle/Resources/views/CRUD/ 目录中找到其他模板
PS。不要忘记清除缓存。
我自定义了操作按钮模板(显示、编辑和删除),目前正在从管理员内部调用它们 class。
->add('_action', 'actions', array(
'actions' => array(
'show' => array('template' => 'IndexBundle:Admin:action/show.html.twig'),
'edit' => array('template' => 'IndexBundle:Admin:action/edit.html.twig'),
'delete' => array('template' => 'IndexBundle:Admin:action/delete.html.twig')
)
));
但是我希望这些模板能够重写配置文件中的默认模板,而不是在每个管理员中定义模板。不幸的是,文档没有提到全局重写默认操作模板。有办法吗?
sonata_admin:
templates:
...
如果在“app”目录中定义新文件,您可以重写任何包的任何部分。
对于您的示例,如果您只想重写默认按钮模板,您可以这样做:
{# app/Resources/SonataAdminBundle/views/CRUD/list__action_edit.html.twig #}
{% if admin.isGranted('EDIT', object) and admin.hasRoute('edit') %}
<a href="{{ admin.generateObjectUrl('edit', object) }}" class="btn btn-sm btn-default edit_link" title="{{ 'action_edit'|trans({}, 'SonataAdminBundle') }}">
{# icon was here #}
{{ 'action_edit'|trans({}, 'SonataAdminBundle') }}
</a>
{% endif %}
使用:
- list__action_delete.html.twig 删除按钮
- list__action_edit.html.twig 编辑按钮
- list__action_show.html.twig 用于显示操作按钮
您可以在 /vendor/sonata-project/admin-bundle/Resources/views/CRUD/ 目录中找到其他模板
PS。不要忘记清除缓存。