ContentEntityStorageBase::cleanIds

protected ContentEntityStorageBase::cleanIds(array $ids)

Ensures integer entity IDs are valid.

The identifier sanitization provided by this method has been introduced as Drupal used to rely on the database to facilitate this, which worked correctly with MySQL but led to errors with other DBMS such as PostgreSQL.

Parameters

array $ids: The entity IDs to verify.

Return value

array The sanitized list of entity IDs.

File

core/lib/Drupal/Core/Entity/ContentEntityStorageBase.php, line 561

Class

ContentEntityStorageBase
Base class for content entity storage handlers.

Namespace

Drupal\Core\Entity

Code

protected function cleanIds(array $ids) {
  $definitions = $this->entityManager->getBaseFieldDefinitions($this->entityTypeId);
  $id_definition = $definitions[$this->entityType->getKey('id')];
  if ($id_definition->getType() == 'integer') {
    $ids = array_filter($ids, function($id) {
      return is_numeric($id) && $id == (int) $id;
    });
    $ids = array_map('intval', $ids);
  }
  return $ids;
}
doc_Drupal
2016-10-29 08:57:31
Comments
Leave a Comment

Please login to continue.