Php 如何在Sonata Admin中覆盖Admin.js?

Php 如何在Sonata Admin中覆盖Admin.js?,php,symfony,sonata-admin,symfony-sonata,sonata,Php,Symfony,Sonata Admin,Symfony Sonata,Sonata,如何在Sonata Admin中覆盖文件Admin.js? 我尝试在以下位置创建此文件: /app/Resources/SonataAdminBundle/public/Admin.js 但这不起作用 在standard_layout.html.twig中,此文件包含在以下内容中: {% block sonata_javascript_pool %} {% for javascript in sonata_admin.adminPool.getOption

如何在Sonata Admin中覆盖文件Admin.js? 我尝试在以下位置创建此文件:

/app/Resources/SonataAdminBundle/public/Admin.js

但这不起作用

在standard_layout.html.twig中,此文件包含在以下内容中:

        {% block sonata_javascript_pool %}
            {% for javascript in sonata_admin.adminPool.getOption('javascripts', []) %}
                <script src="{{ asset(javascript) }}"></script>
            {% endfor %}
        {% endblock %}

您可以调整javascripts选项:

app/console -vvv config:dump-reference sonata_admin
sonata_admin:
    …
    assets:
        …
        javascripts:

            # Defaults:
            - bundles/sonatacore/vendor/jquery/dist/jquery.min.js
            - bundles/sonataadmin/vendor/jquery.scrollTo/jquery.scrollTo.min.js
            - bundles/sonatacore/vendor/moment/min/moment.min.js
            - bundles/sonataadmin/vendor/jqueryui/ui/minified/jquery-ui.min.js
            - bundles/sonataadmin/vendor/jqueryui/ui/minified/i18n/jquery-ui-i18n.min.js
            - bundles/sonatacore/vendor/bootstrap/dist/js/bootstrap.min.js
            - bundles/sonatacore/vendor/eonasdan-bootstrap-datetimepicker/build/js/bootstrap-datetimepicker.min.js
            - bundles/sonataadmin/vendor/jquery-form/jquery.form.js
            - bundles/sonataadmin/jquery/jquery.confirmExit.js
            - bundles/sonataadmin/vendor/x-editable/dist/bootstrap3-editable/js/bootstrap-editable.min.js
            - bundles/sonatacore/vendor/select2/select2.min.js
            - bundles/sonataadmin/vendor/admin-lte/dist/js/app.min.js
            - bundles/sonataadmin/vendor/iCheck/icheck.min.js
            - bundles/sonataadmin/vendor/slimScroll/jquery.slimscroll.min.js
            - bundles/sonataadmin/vendor/waypoints/lib/jquery.waypoints.min.js
            - bundles/sonataadmin/vendor/waypoints/lib/shortcuts/sticky.min.js
            - bundles/sonataadmin/vendor/readmore-js/readmore.min.js
            - bundles/sonataadmin/Admin.js
            - bundles/sonataadmin/treeview.js

您可以调整javascripts选项:

app/console -vvv config:dump-reference sonata_admin
sonata_admin:
    …
    assets:
        …
        javascripts:

            # Defaults:
            - bundles/sonatacore/vendor/jquery/dist/jquery.min.js
            - bundles/sonataadmin/vendor/jquery.scrollTo/jquery.scrollTo.min.js
            - bundles/sonatacore/vendor/moment/min/moment.min.js
            - bundles/sonataadmin/vendor/jqueryui/ui/minified/jquery-ui.min.js
            - bundles/sonataadmin/vendor/jqueryui/ui/minified/i18n/jquery-ui-i18n.min.js
            - bundles/sonatacore/vendor/bootstrap/dist/js/bootstrap.min.js
            - bundles/sonatacore/vendor/eonasdan-bootstrap-datetimepicker/build/js/bootstrap-datetimepicker.min.js
            - bundles/sonataadmin/vendor/jquery-form/jquery.form.js
            - bundles/sonataadmin/jquery/jquery.confirmExit.js
            - bundles/sonataadmin/vendor/x-editable/dist/bootstrap3-editable/js/bootstrap-editable.min.js
            - bundles/sonatacore/vendor/select2/select2.min.js
            - bundles/sonataadmin/vendor/admin-lte/dist/js/app.min.js
            - bundles/sonataadmin/vendor/iCheck/icheck.min.js
            - bundles/sonataadmin/vendor/slimScroll/jquery.slimscroll.min.js
            - bundles/sonataadmin/vendor/waypoints/lib/jquery.waypoints.min.js
            - bundles/sonataadmin/vendor/waypoints/lib/shortcuts/sticky.min.js
            - bundles/sonataadmin/vendor/readmore-js/readmore.min.js
            - bundles/sonataadmin/Admin.js
            - bundles/sonataadmin/treeview.js

我认为,如果在DOM的底部创建一个新的javascript文件,这是一个更好的解决方案。之后,您可以覆盖受影响的Admin.js方法,如下面的代码所示

您可以这样做,因为管理员对象位于全局窗口对象中:

例如:您想修改设置列表模式方法

// assets/js/admin.js

window.Admin.setup_list_modal = function (modal) {
     // Your code...
};

我认为,如果在DOM的底部创建一个新的javascript文件,这是一个更好的解决方案。之后,您可以覆盖受影响的Admin.js方法,如下面的代码所示

您可以这样做,因为管理员对象位于全局窗口对象中:

例如:您想修改设置列表模式方法

// assets/js/admin.js

window.Admin.setup_list_modal = function (modal) {
     // Your code...
};