drupal_render()中的非法字符串偏移'#children'

Nom*_*ake 5 drupal drupal-7 fullcalendar

从网站上看,我的完整日历会引发错误:

警告:在element_children()中为foreach()提供的参数无效(regel 6400 van C:\ Users\Simon\My Websites\Xampp\htdocs\xxx\includes\common.inc).
警告:drupal_render()中的非法字符串偏移'#children'(regel 5867 van C:\ Users\Simon\My Websites\Xampp\htdocs\xxx\includes\common.inc).
警告:drupal_render()中的非法字符串偏移'#children'(regel 5877 van C:\ Users\Simon\My Websites\Xampp\htdocs\xxx\includes\common.inc).
警告:drupal_render()中的非法字符串偏移'#children'(regel 5915 van C:\ Users\Simon\My Websites\Xampp\htdocs\xxx\includes\common.inc).
警告:drupal_render()中的非法字符串偏移'#printed'(regel 5922 van C:\ Users\Simon\My Websites\Xampp\htdocs\xxx\includes\common.inc).

我在某处读过它在PHP 5.4xx下运行不正常.

谁有解决方案?

Gil*_*s B 17

更好的建议如下:

1)要在实时Drupal 7站点上隐藏用户的警告/错误/通知,请转到[SITE]/admin/config/development/logging并关闭错误显示.不要在您的设置文件中执行此操作,因为您将失去查找问题的能力.

2)进行一些调试通常是值得的.虽然一般情况下警告和通知都可以安全地被忽略,但它们会减慢你的网站速度(请参阅php运行得更快而没有警告?).通常,错误是特定Drupal模块的已知问题的结果,并且drupal.org上可能发布了一个补丁来修复问题.这个特殊(和常见)错误的来源可能难以追查,但有关如何在这里做到这一点的有用的讨论:http://fuseinteractive.ca/blog/put-your-children-their-place-drupal -debug -摘录

在你的情况下,它可能是Calendar模块中的一个错误(假设你正在使用它来生成你的日历),你可能想看看那里的问题队列:https://drupal.org/project/issues/日历?类别= 1


Sub*_*has 4

这是 PHP/Drupal 的一个已知问题。您看到的所有错误都不是错误,它们只是警告,可以非常安全地忽略。您只需要关心以 开头的行Error: ....

要安全地忽略这些警告,请编辑您的 drupalsites/default/settings.php并添加以下行:

error_reporting(E_ALL & ~(E_STRICT|E_NOTICE|E_WARNING));
Run Code Online (Sandbox Code Playgroud)

这也将解决其他潜在插件的相同问题。

Drupal 的推荐生产设置是完全禁用错误报告,这样您的用户就不会收到任何神秘的错误消息。对于生产 Drupal 站点,您必须执行以下操作:

error_reporting(0);
Run Code Online (Sandbox Code Playgroud)

如果您需要查看网站中的错误,请改用 nginx 日志。

编辑:修复错误报告,添加生产注释

  • 哇。不要这样做 - 不要禁用警告,因为您不喜欢看到它们,**修复它们**。如果您看到非法偏移量和无效参数,则_您的代码是错误的_。通过“您的”代码,我包括您正在使用的任何模块。隐藏警告从来都不是解决方案。相反,将它们发送到日志,然后处理它们。它们是出现问题的迹象,如果您没有发现任何问题,那只能看运气了。 (4认同)