首页 > 解决方案 > 我们如何限制管理员以外的用户查看所有 php 错误?

问题描述

我们在某些页面中显示了错误。这些错误必须仅为管理员用户显示。

我将“要显示的错误消息”更改为无。仍然出现错误。我将 status-messages.html.twig 复制到我的主题中,并尝试提供 is_admin。这给了我错误。任何帮助,将不胜感激。

{% block messages %} 
  {% if message_list is not empty %} 
    {{ attach_library('bartik/messages') }} 
    <div class="messages__wrapper layout-container"> 
      {{ parent() }} 
    </div> 
  {% endif %} 
{% endblock messages %} 

标签: phpdrupal-8

解决方案


错误显示只能在网站的开发副本上启用。即使您隐藏了某些用户无法显示的错误,也很有可能可以从开发人员工具中的某处访问这些错误(并且可能带来巨大的安全风险。)因此,默认情况下禁用错误显示的选项不可用'每个用户”,因为标准模式是:

  1. 禁用在生产站点上显示错误(在配置 > 日志记录和错误下)。查看错误日志以深入了解故障。
  2. 在您的本地/开发环境中,将以下内容添加到 sites/default/settings.local.php 以在该环境中启用错误显示

$config['system.logging']['error_level'] = 'verbose';

这样,当您将安装从 live 导入 dev 时,默认情况下将启用错误显示,无需任何修补。“设置它并忘记它”配置。

一篇关于这个主题的好文章,关于正确调试 Twig 的详细信息可以在https://www.drupixels.com/blog/enable-drupal-8-debugging-mode-and-error-reporting-local-development找到。


推荐阅读