在使用特定角色的用户编辑节点时,我会在Drupal站点中收到以下错误。只有用户1才有效。想不通为什么。我调试实体文件,但似乎迭代后id消失了。
EntityMetadataWrapperException:给出的数据值无效。确保它符合所需的数据类型和格式。 dans EntityDrupalWrapper-> set()(ligne 737 dans /sites/all/modules/entity/includes/entity.wrapper.inc)。
仅使用contrib模块尚未对此进行编码。
答案 0 :(得分:2)
由于你还没有做任何编码,它可能是某些contrib模块的错误,Entity API或者你正在处理格式错误的实体。
尝试应用此修补程序:Add field information to exception message on validation exception,这样您就可以查看失败的值。
如果您使用的是自定义编码,请查看Entity metadata wrappers page以获取一些示例。常见的错误是在处理多值字段时不使用array()
用于set()
,或者对于单值字段使用相反的额外数组。
如果您可以重现问题,可以通过逐步调试器调试问题,并在Exception行上执行断点,或者在异常发生之前临时添加:var_dump(debug_backtrace()); exit;
手动执行此操作,因此,PHP可以在传递所有参数的情况下转储当前代码的回溯,这样您就可以跟踪格式错误的实体或识别失败的contrib模块。
另请参阅:DA的How to set a value on a field collection using entity metadata wrapper