EntityMetadataWrapperException:给定的数据值无效

EntityMetadataWrapperException: Invalid data value given

在编辑具有特定角色的用户的节点时,我在 Drupal 网站上收到以下错误。只有用户 1 它可以工作。不知道为什么。我调试了实体文件,但是迭代后好像id消失了

EntityMetadataWrapperException : Invalid data value given. Be sure it matches the required data type and format. dans EntityDrupalWrapper->set() (ligne 737 dans /sites/all/modules/entity/includes/entity.wrapper.inc).

尚未为此仅使用 contrib 模块编写代码。

由于您没有进行任何编码,这可能是某些贡献模块的错误,Entity API或者您正在处理格式错误的实体。

尝试应用此补丁:Add field information to exception message on validation exception,这将允许您查看它失败的值。

如果您使用的是一些自定义编码,请查看 Entity metadata wrappers page 中的一些示例。常见的错误是在处理多值字段时不使用 array() 代替 set(),或者相反 - 单值字段的额外数组。

如果您可以重现问题,您可以通过逐步调试器调试问题并在异常行上设置断点,或者通过临时添加手动执行:var_dump(debug_backtrace()); exit; 就在异常之前发生了,因此 PHP 可以转储当前代码的回溯以及所有传递的参数,因此您可以跟踪格式错误的实体或识别失败的 contrib 模块。

另请参阅:How to set a value on a field collection using entity metadata wrapper 在 DA