Beispiel #1
0
 /**
  * A helper for adding tags and metadata to the query.
  *
  * @return \Drupal\Core\Database\Query\SelectInterface
  *   The query with additional tags and metadata.
  */
 protected function prepareQuery()
 {
     $this->query = clone $this->query();
     $this->query->addTag('migrate');
     $this->query->addTag('migrate_' . $this->migration->id());
     $this->query->addMetaData('migration', $this->migration);
     return $this->query;
 }
Beispiel #2
0
 /**
  * Prepares the basic query with proper metadata/tags and base fields.
  *
  * @throws \Drupal\Core\Entity\Query\QueryException
  *   Thrown if the base table does not exists.
  *
  * @return \Drupal\Core\Entity\Query\Sql\Query
  *   Returns the called object.
  */
 protected function prepare()
 {
     if ($this->allRevisions) {
         if (!($base_table = $this->entityType->getRevisionTable())) {
             throw new QueryException("No revision table for " . $this->entityTypeId . ", invalid query.");
         }
     } else {
         if (!($base_table = $this->entityType->getBaseTable())) {
             throw new QueryException("No base table for " . $this->entityTypeId . ", invalid query.");
         }
     }
     $simple_query = TRUE;
     if ($this->entityType->getDataTable()) {
         $simple_query = FALSE;
     }
     $this->sqlQuery = $this->connection->select($base_table, 'base_table', array('conjunction' => $this->conjunction));
     $this->sqlQuery->addMetaData('entity_type', $this->entityTypeId);
     $id_field = $this->entityType->getKey('id');
     // Add the key field for fetchAllKeyed().
     if (!($revision_field = $this->entityType->getKey('revision'))) {
         // When there is no revision support, the key field is the entity key.
         $this->sqlFields["base_table.{$id_field}"] = array('base_table', $id_field);
         // Now add the value column for fetchAllKeyed(). This is always the
         // entity id.
         $this->sqlFields["base_table.{$id_field}" . '_1'] = array('base_table', $id_field);
     } else {
         // When there is revision support, the key field is the revision key.
         $this->sqlFields["base_table.{$revision_field}"] = array('base_table', $revision_field);
         // Now add the value column for fetchAllKeyed(). This is always the
         // entity id.
         $this->sqlFields["base_table.{$id_field}"] = array('base_table', $id_field);
     }
     if ($this->accessCheck) {
         $this->sqlQuery->addTag($this->entityTypeId . '_access');
     }
     $this->sqlQuery->addTag('entity_query');
     $this->sqlQuery->addTag('entity_query_' . $this->entityTypeId);
     // Add further tags added.
     if (isset($this->alterTags)) {
         foreach ($this->alterTags as $tag => $value) {
             $this->sqlQuery->addTag($tag);
         }
     }
     // Add further metadata added.
     if (isset($this->alterMetaData)) {
         foreach ($this->alterMetaData as $key => $value) {
             $this->sqlQuery->addMetaData($key, $value);
         }
     }
     // This now contains first the table containing entity properties and
     // last the entity base table. They might be the same.
     $this->sqlQuery->addMetaData('all_revisions', $this->allRevisions);
     $this->sqlQuery->addMetaData('simple_query', $simple_query);
     return $this;
 }
Beispiel #3
0
 public function addTag($tag)
 {
     $this->query->addTag($tag);
     return $this;
 }