Drupal 7 EntityAlFormedException:类型为student的实体缺少bundle属性。在实体_extract_id()中
我创建了一个名为“student”的简单模块,这个模块生成的新实体是“student” 这是我的密码 但当我添加新学生时,会收到这样的错误消息:Drupal 7 EntityAlFormedException:类型为student的实体缺少bundle属性。在实体_extract_id()中,drupal-7,drupal-modules,Drupal 7,Drupal Modules,我创建了一个名为“student”的简单模块,这个模块生成的新实体是“student” 这是我的密码 但当我添加新学生时,会收到这样的错误消息: EntityAlFormedException:类型为student的实体缺少bundle属性。在实体_extract_ids()中(C:\AppServ\www\drupal-7.12\includes\common.inc的第7501行) 我看了我所有的代码但找不到什么, 非常感谢 这个问题-“”-可能是导致您出现问题的原因。要确认这一点,请按照
EntityAlFormedException:类型为student的实体缺少bundle属性。在实体_extract_ids()中(C:\AppServ\www\drupal-7.12\includes\common.inc的第7501行) 我看了我所有的代码但找不到什么, 非常感谢 这个问题-“”-可能是导致您出现问题的原因。要确认这一点,请按照中的步骤进行快速检查,如下所示: 我有同样的问题,这显然是由实体对象中缺少实体类型属性引起的。我查看了一下数据库,发现表“file_managed”有一个字段“type”。我填写了有问题的实体对象的类型,它可以工作。 显然,这不是一个真正的解决方案(手动更新数据库),因为存在数百个条目
在我的例子中,问题是当我试图用另一种nid保存一种类型的节点时。
我只需要检查nid类型是否与正在保存/更新的节点的实际类型相同。我对模块也有同样的问题。 我通过用户导入模块解决了这个问题。
我希望此解决方案可以帮助您。Drupal core
common.inc
文件引发错误,条件如下:
if (!empty($info['entity keys']['bundle'])) {
// Explicitly fail for malformed entities missing the bundle property.
if (!isset($entity->{$info['entity keys']['bundle']}) || $entity->{$info['entity keys']['bundle']} === '') {
throw new EntityMalformedException(t('Missing bundle property on entity of type @entity_type.', array('@entity_type' => $entity_type)));
}
$bundle = $entity->{$info['entity keys']['bundle']};
}
因此,如果您的bundle属性在保存时格式不正确,则显式失败,因为它无法识别它是什么类型(bundle)
这可能会失败的原因有很多,因此您必须首先对其进行分析
(如果没有drush,如果启用了devel模块,则可以在/devel/PHP中运行PHP代码)
实体键
部分中的bundle
的值,方法是:
drush eval 'print_r(entity_get_info("student"));'
类型
,则表示您试图保存的实体缺少类型
属性drush eval '$entity = entity_load("student", array(1)); entity_get_controller("student")->save(reset($entity))'
其中student是您的实体类型
,1
是您的实体id
如果仍然不起作用,请清除缓存(entity\u info\u cache\u clear()
)或临时编辑您的common.inc
并转储(例如var\u dump($entity);
您的$entity
就在throw的前一行,检查传入函数的内容,并进一步调查您的bundletype
丢失的原因
有关更多可能性和详细信息,请检查:at DO添加
var\u dump(debug\u backtrace());
行,然后您将获得更多错误信息。这可能会帮助您解决此问题
检查表映射id,其中一些缺少…EntityMalformedException:文件类型的实体缺少bundle属性。在实体\u extract\u id()中 在我们的情况下,用户帐户本身就是问题所在
由于某种原因,用户访问权限在添加了所有好的内容后就消失了!对我来说
drush eval'print\u r(entity\u get\u info(“student”);”
不起作用。我不得不使用drush eval“print\u r(entity\u get\u info(“student”);“
这太完美了,感谢您随时指出这个问题。