function entity_extract_ids
entity_extract_ids($entity_type, $entity)
Helper function to extract id, vid, and bundle name from an entity.
Parameters
$entity_type: The entity type; e.g. 'node' or 'user'.
$entity: The entity from which to extract values.
Return value
A numerically indexed array (not a hash table) containing these elements:
- 0: Primary ID of the entity.
- 1: Revision ID of the entity, or NULL if $entity_type is not versioned.
- 2: Bundle name of the entity, or NULL if $entity_type has no bundles.
File
- includes/common.inc, line 7897
- Common functions that many Drupal modules will need to reference.
Code
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); }
© 2001–2016 by the original authors
Licensed under the GNU General Public License, version 2 and later.
Drupal is a registered trademark of Dries Buytaert.
https://api.drupal.org/api/drupal/includes!common.inc/function/entity_extract_ids/7.x