public function WorkspaceAssociation::getTrackedEntities in Drupal 9
Same name and namespace in other branches
- 8 core/modules/workspaces/src/WorkspaceAssociation.php \Drupal\workspaces\WorkspaceAssociation::getTrackedEntities()
Retrieves the entities tracked by a given workspace.
Parameters
string $workspace_id: The ID of the workspace.
string|null $entity_type_id: (optional) An entity type ID to filter the results by. Defaults to NULL.
int[]|string[]|null $entity_ids: (optional) An array of entity IDs to filter the results by. Defaults to NULL.
Return value
array Returns a multidimensional array where the first level keys are entity type IDs and the values are an array of entity IDs keyed by revision IDs.
Overrides WorkspaceAssociationInterface::getTrackedEntities
1 call to WorkspaceAssociation::getTrackedEntities()
- WorkspaceAssociation::trackEntity in core/
modules/ workspaces/ src/ WorkspaceAssociation.php - Updates or creates the association for a given entity and a workspace.
File
- core/
modules/ workspaces/ src/ WorkspaceAssociation.php, line 133
Class
- WorkspaceAssociation
- Provides a class for CRUD operations on workspace associations.
Namespace
Drupal\workspacesCode
public function getTrackedEntities($workspace_id, $entity_type_id = NULL, $entity_ids = NULL) {
$query = $this->database
->select(static::TABLE);
$query
->fields(static::TABLE, [
'target_entity_type_id',
'target_entity_id',
'target_entity_revision_id',
])
->orderBy('target_entity_revision_id', 'ASC')
->condition('workspace', $workspace_id);
if ($entity_type_id) {
$query
->condition('target_entity_type_id', $entity_type_id, '=');
if ($entity_ids) {
$query
->condition('target_entity_id', $entity_ids, 'IN');
}
}
$tracked_revisions = [];
foreach ($query
->execute() as $record) {
$tracked_revisions[$record->target_entity_type_id][$record->target_entity_revision_id] = $record->target_entity_id;
}
return $tracked_revisions;
}