我想要我的模板。
service.yml:
admin.globaux:
class: AppBundle\Admin\ParametreAdmin
arguments: [~, AppBundle\Entity\ParametreEntity, ~]
tags:
- { name: sonata.admin, manager_type: orm, group: Options, label: Globaux}
calls:
- [ setTemplate, [list, "@SonataAdmin/CRUD/Special/list_parametre_globaux.html.twig"]]
public: true
list_parametre_globaux.html.twig:
{% extends base_template %}
<div>
{{ object.pourcentageMise }}
</div>
我有这个错误:
(1/1)ServiceNotFoundException 服务“admin.globaux”依赖于不存在的服务“SonataAdmin / CRUD / Special / list_parametre_globaux.html.twig”。
我不明白为什么它不起作用。
感谢您的帮助
答案 0 :(得分:1)
您正在尝试拨打服务,这就是您的邮件错误所说的内容。
calls:
- [ setTemplate, [list, "@SonataAdmin/CRUD/Special/list_parametre_globaux.html.twig"]]
“@”语法是为服务注入而设计的。
这是您应该编写模板调用的方式:
calls:
- [ setTemplate, [list, "SonataAdminBundle:CRUD/Special:list_parametre_globaux.html.twig"]]
这意味着您的自定义模板位于
中vendor/sonata-admin/admin-bundle/Resources/views/CRUD/Special/list_parametre_globaux.html.twig
将文件放在供应商文件夹中不是一个好主意,您应该将其放在
中src/AppBundle/Resources/views/CRUD/Special/list_parametre_globaux.html.twig
然后你的service.yml中的模板调用将是
calls:
- [ setTemplate, [list, "AppBundle:CRUD/Special:list_parametre_globaux.html.twig"]]
此外,在文件list_parametre_globaux.html.twig
中,您不应该
{% extends base_template %}
但是
{% extends 'SonataAdminBundle:CRUD:base_list.html.twig' %}
这是用于列表操作的树枝模板。 如果您检查位于
中的原始模板vendor/sonata-admin/admin-bundle/Resources/views/CRUD/base_list.html.twig
你会看到不同的块。您可以通过在自定义树枝模板中写入一些代码来覆盖每个块。
{% block name_of_block %}
{% endblock name_of_block}
如果你只想添加东西而不是覆盖整个块,你可以这样做
{% block name_of_block %}
enter code here
{{parent ()}}
{% endblock name_of_block}
最后,如果您只想覆盖块的一部分,则必须在自定义树枝模板中复制/粘贴整个base_block,然后重写特定部分。