禁用Sonata管理员捆绑包生成的console.log()消息

时间:2018-10-25 12:51:04

标签: php symfony sonata-admin console.log

我在Symfony项目中使用Sonata Admin软件包。我在Sonata管理员捆绑包生成的浏览器中看到许多控制台日志消息。

enter image description here

这些消息是Sonata Admin通过代码从 /vendor/sonata-project/admin-bundle/src/Resources/public/Admin.js 生成的,

/**
 * render log message
 * @param mixed
 */
log: function() {
    var msg = '[Sonata.Admin] ' + Array.prototype.join.call(arguments,', ');
    if (window.console && window.console.log) {
        window.console.log(msg);
    } else if (window.opera && window.opera.postError) {
        window.opera.postError(msg);
    }
},

有人知道如何禁用这些日志消息吗?我什至没有从Google搜索中得到任何结果。有没有办法从配置文件或其他东西控制这些?

提前谢谢!

2 个答案:

答案 0 :(得分:1)

我已经在Sonata Admin GitHub存储库https://github.com/sonata-project/SonataAdminBundle/issues/5278中打开了一个问题,并找到了解决方案。

您必须像这样覆盖奏鸣曲管理员的standard_layout,

/config/packages/sonata_admin.yaml

sonata_admin
    templates:
        layout: 'sonata_admin/layout.html.twig'

现在在 / templates / sonata_admin / 中创建 layout.html.twig ,并使用以下代码。

{% extends '@SonataAdmin/standard_layout.html.twig' %}

{% block javascripts %}
  {{ parent() }}
  <script>
    if ('undefined' !== typeof window.Admin) {
      window.Admin.log = function() {}
    }
  </script>
{% endblock %}

答案 1 :(得分:0)

如果您根本不需要任何Sonata注释,建议您注释该代码,然后就应该完成了。如果出现一些错误(例如,如果在代码中的任何地方调用了函数“ log()”),则只需注释以下两行:

window.console.log(msg);
window.opera.postError(msg);