如何在symfony2中覆盖奏鸣曲管理包的CSS

时间:2013-11-07 05:38:45

标签: php symfony sonata-admin

我想覆盖一个css文件,即驻留在sonata管理包项目的sonata-project / admin-bundle / Sonata / AdminBundle / Resources / public / bootstrap / css路径中。 请帮帮我。

3 个答案:

答案 0 :(得分:10)

你可以通过一种方式覆盖奏鸣曲管理员的css文件,但记住这会覆盖stylesheets的块,但你仍然可以通过调用stylesheets来调用父块的{{ parent() }} / p>

{% block stylesheets %}
   /* this will override the parent block you can define here your css files*/
    <link rel="stylesheet" href="{{ asset('cssfilepath.css') }}"/>
{% endblock %}

{% block stylesheets %}
    /*this will extend the parent block */
    {{ parent() }}
    <link rel="stylesheet" href="{{ asset('cssfilepath.css') }}"/>
{% endblock %}

答案 1 :(得分:3)

我使用了M Khalid Junaid的答案,就像魅力一样。这里有一些我在实施时遗漏的事实。

像这样更新你的config.yml

sonata_admin:
    templates:
        list: AppBundle::Admin/list.html.twig

然后src/AppBundle/Resources/views/Admin/list.html.twig可能如下所示:

{% extends 'SonataAdminBundle:CRUD:base_list.html.twig' %}

{% block stylesheets %}
    {{ parent() }}

    <style type="text/css">
        * {

        }
    </style>

    <!-- and/or -->

    <link rel="stylesheet" href="{{ asset('cssfilepath.css') }}"/>
{% endblock %}

答案 2 :(得分:1)

可以在配置文件中的Sonata Admin Bundle中删除/添加样式表,而无需处理模板文件:

sonata_admin:
    assets:
        remove_stylesheets:
            - bundles/sonataadmin/css/old.css # path to vendors css-file to remove
        extra_stylesheets:
            - build/admin/css/new.css # your css-file to add

以上考虑的选项在CONFIGURATION部分的Sonata Admin Bundle FULL CONFIGURATION OPTIONS中列出。