我有奏鸣曲管理包但无法弄清楚,如何根据表单模板中的字段值更改样式。
例如现场难度......难度值越高,记录行应该越红......
我该怎么做?我花了好几个小时来理解奏鸣曲中的树枝模板,但是我越读这个模板,我就越感到困惑。
模板中有块调用,无法弄清楚这些调用是来自还是来自。
我将symfony 2与Sonata Admin Bundle一起使用。
谢谢
答案 0 :(得分:1)
创建自己的模板,扩展SonataAdminBundle:CRUD:base_edit.html.twig,并覆盖管理类的$templates
属性,或者将其传递到管理服务声明中,如下所示:
librinfo_crm.admin.organism:
class: Librinfo\CRMBundle\Admin\OrganismAdmin
arguments: [~, Librinfo\CRMBundle\Entity\Organism, LibrinfoCRMBundle:OrganismAdmin]
tags:
- name: sonata.admin
manager_type: orm
group: Customers Relationship Management
label: librinfo.crm.organism_admin.label
label_translator_strategy: blast_core.label.strategy.librinfo
calls:
- [ setTemplate, [edit, LibrinfoCRMBundle:OrganismAdmin:edit.html.twig]] #set a custom edit template
- [ setTemplate, [show, LibrinfoCRMBundle:OrganismAdmin:show.html.twig]] #sets a custom show template
您的自定义模板需要覆盖默认的奏鸣曲模板,例如:
{% extends 'SonataAdminBundle:CRUD:base_edit.html.twig' %}
{% block form %}
{# your custom code #}
{% endblock %}
如果您不知道哪个块或哪个模板要扩展,请告诉我您要自定义的视图(列表,编辑,显示),但可能是所有这些。
然后检索您想要的字段或任何可以使用
的字段 {% dump %}
在分析器或
中转储模板的所有变量 {% dump(myVar) %}
转储特定变量
修改强>
base_template
是从控制器传递的变量,包含模板的名称。
如果仔细观察,所有这些模板最终都会扩展 从控制器传递的base_template变量。这个 变量总是取上面提到的值之一 全局模板,这就是对这些文件所做的更改的影响 所有SonataAdminBundle界面。
如果转储base_template
变量,您将知道模板已扩展。
对于parentForm
块,请看上面:
{% use 'SonataAdminBundle:CRUD:base_edit_form.html.twig' with form as parentForm %}
此行导入SonataAdminBundle:CRUD:base_edit_form.html.twig form
阻止别名为parentForm
。
因此,{{ block('parentForm') }}
是一个从SonataAdminBundle呈现form
块的调用:CRUD:base_edit_form.html.twig。