Php 如何覆盖symfony2中sonata管理包的css

Php 如何覆盖symfony2中sonata管理包的css,php,symfony,sonata-admin,Php,Symfony,Sonata Admin,我想覆盖一个css文件,即位于sonata管理包项目的sonata项目/admin bundle/sonata/AdminBundle/Resources/public/bootstrap/css路径中。 请帮助我。有一种方法可以覆盖sonata admin的css文件,但请记住,这将覆盖样式表的块,但仍然可以通过调用{{parent()}调用父块的样式表 {% block stylesheets %} /* this will override the parent block you

我想覆盖一个css文件,即位于sonata管理包项目的sonata项目/admin bundle/sonata/AdminBundle/Resources/public/bootstrap/css路径中。
请帮助我。

有一种方法可以覆盖sonata admin的css文件,但请记住,这将覆盖
样式表的块
,但仍然可以通过调用
{{parent()}
调用父块的
样式表

{% 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 %}
{%block stylesheets%}
/*这将覆盖您可以在此处定义css文件的父块*/
{%endblock%}
{%块样式表%}
/*这将扩展父块*/
{{parent()}}
{%endblock%}

我使用了M Khalid Junaid的答案,这个答案很有魅力。这里是一些我在实施这一点时遗漏的事实

像这样更新您的
config.yml

sonata_admin:
    templates:
        list: AppBundle::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 %}
然后,
src/AppBundle/Resources/views/Admin/list.html.twig
可以如下所示:

sonata_admin:
    templates:
        list: AppBundle::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 %}
{%extends'SonataAdminBundle:CRUD:base_list.html.twig%}
{%块样式表%}
{{parent()}}
* {
}
{%endblock%}

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

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

上述选项在第节的Sonata管理包中列出

我知道…但我想覆盖一个特定的css文件。你说的是另一种方法,我在app/Resources/SonataAdminBundle/public/bootstrap/css/中创建了一个文件夹,然后执行一个php应用程序/控制台资产:install web/。这就是我们覆盖模板的方式。我们也可以覆盖css文件吗?另一种方法是用样式表中的新样式覆盖类谢谢,我以前有点困惑,但这对我的帮助比你知道的要多:)