更改奏鸣曲管理包中的行颜色取决于字段的值

时间:2017-01-27 16:22:08

标签: symfony twig sonata

我有奏鸣曲管理包但无法弄清楚,如何根据表单模板中的字段值更改样式。

例如现场难度......难度值越高,记录行应该越红......

我该怎么做?我花了好几个小时来理解奏鸣曲中的树枝模板,但是我越读这个模板,我就越感到困惑。

模板中有块调用,无法弄清楚这些调用是来自还是来自。

我将symfony 2与Sonata Admin Bundle一起使用。

谢谢

1 个答案:

答案 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界面。

https://sonata-project.org/bundles/admin/master/doc/reference/templates.html#crudcontroller-actions-templates

如果转储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。