0

I have strange behavior that when i visit www.mysite.com/taxonomy/term/516/sdfsdf

i get

EntityMalformedException: Missing bundle property on entity of type taxonomy_term. in entity_extract_ids() (line 7788 of /../includes/common.inc). The website encountered an unexpected error. Please try again later.

while it should load content of

www.mysite.com/taxonomy/term/516

Can anyone help?

15

1 Answer 1

0

there seems to be an error in

entity_extract_ids()

in some circumstances the entity info for taxonomy term is wrong .. (probably with entity translation in my case)

function entity_extract_ids($entity_type, $entity) {
  $info = entity_get_info($entity_type);

  // Objects being created might not have id/vid yet.
  $id = isset($entity->{$info['entity keys']['id']}) ? $entity->{$info['entity keys']['id']} : NULL;
  $vid = ($info['entity keys']['revision'] && isset($entity->{$info['entity keys']['revision']})) ? $entity->{$info['entity keys']['revision']} : NULL;

  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']};
  }
  else {
    // The entity type provides no bundle key: assume a single bundle, named
    // after the entity type.
    $bundle = $entity_type;
  }

  return array($id, $vid, $bundle);
}

this is 1:1 the code (not patched ..), that needs changes. from common.inc

see here for patches: https://www.drupal.org/node/1270340#comment-9890989

when using EntityFieldQuery and fe. node_load_multiple make sure to pass fully loaded entites ! use node_load_multiple and pass that result.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.