class EntityReverse
A relationship handlers which reverse entity references.
Plugin annotation
@ViewsRelationship("entity_reverse");Hierarchy
- class \Drupal\Component\Plugin\PluginBase implements \Drupal\Component\Plugin\PluginInspectionInterface, \Drupal\Component\Plugin\DerivativeInspectionInterface- class \Drupal\Core\Plugin\PluginBase uses \Drupal\Core\StringTranslation\StringTranslationTrait, \Drupal\Core\DependencyInjection\DependencySerializationTrait, \Drupal\Core\Messenger\MessengerTrait extends \Drupal\Component\Plugin\PluginBase- class \Drupal\views\Plugin\views\PluginBase implements \Drupal\Core\Plugin\ContainerFactoryPluginInterface, \Drupal\views\Plugin\views\ViewsPluginInterface, \Drupal\Component\Plugin\DependentPluginInterface, \Drupal\Core\Security\TrustedCallbackInterface extends \Drupal\Core\Plugin\PluginBase- class \Drupal\views\Plugin\views\HandlerBase implements \Drupal\views\Plugin\views\ViewsHandlerInterface extends \Drupal\views\Plugin\views\PluginBase- class \Drupal\views\Plugin\views\relationship\RelationshipPluginBase extends \Drupal\views\Plugin\views\HandlerBase- class \Drupal\views\Plugin\views\relationship\EntityReverse extends \Drupal\views\Plugin\views\relationship\RelationshipPluginBase
 
 
- class \Drupal\views\Plugin\views\relationship\RelationshipPluginBase extends \Drupal\views\Plugin\views\HandlerBase
 
- class \Drupal\views\Plugin\views\HandlerBase implements \Drupal\views\Plugin\views\ViewsHandlerInterface extends \Drupal\views\Plugin\views\PluginBase
 
- class \Drupal\views\Plugin\views\PluginBase implements \Drupal\Core\Plugin\ContainerFactoryPluginInterface, \Drupal\views\Plugin\views\ViewsPluginInterface, \Drupal\Component\Plugin\DependentPluginInterface, \Drupal\Core\Security\TrustedCallbackInterface extends \Drupal\Core\Plugin\PluginBase
 
- class \Drupal\Core\Plugin\PluginBase uses \Drupal\Core\StringTranslation\StringTranslationTrait, \Drupal\Core\DependencyInjection\DependencySerializationTrait, \Drupal\Core\Messenger\MessengerTrait extends \Drupal\Component\Plugin\PluginBase
Expanded class hierarchy of EntityReverse
Related topics
File
- 
              core/modules/ views/ src/ Plugin/ views/ relationship/ EntityReverse.php, line 16 
Namespace
Drupal\views\Plugin\views\relationshipView source
class EntityReverse extends RelationshipPluginBase {
  
  /**
   * Constructs an EntityReverse object.
   *
   * @param array $configuration
   *   A configuration array containing information about the plugin instance.
   * @param string $plugin_id
   *   The plugin_id for the plugin instance.
   * @param array $plugin_definition
   *   The plugin implementation definition.
   * @param \Drupal\views\Plugin\ViewsHandlerManager $join_manager
   *   The views plugin join manager.
   */
  public function __construct(array $configuration, $plugin_id, $plugin_definition, ViewsHandlerManager $join_manager) {
    parent::__construct($configuration, $plugin_id, $plugin_definition);
    $this->joinManager = $join_manager;
  }
  
  /**
   * {@inheritdoc}
   */
  public static function create(ContainerInterface $container, array $configuration, $plugin_id, $plugin_definition) {
    return new static($configuration, $plugin_id, $plugin_definition, $container->get('plugin.manager.views.join'));
  }
  
  /**
   * Called to implement a relationship in a query.
   */
  public function query() {
    $this->ensureMyTable();
    // First, relate our base table to the current base table to the
    // field, using the base table's id field to the field's column.
    $views_data = Views::viewsData()->get($this->table);
    $left_field = $views_data['table']['base']['field'];
    $first = [
      'left_table' => $this->tableAlias,
      'left_field' => $left_field,
      'table' => $this->definition['field table'],
      'field' => $this->definition['field field'],
      'adjusted' => TRUE,
    ];
    if (!empty($this->options['required'])) {
      $first['type'] = 'INNER';
    }
    if (!empty($this->definition['join_extra'])) {
      $first['extra'] = $this->definition['join_extra'];
    }
    if (!empty($def['join_id'])) {
      $id = $def['join_id'];
    }
    else {
      $id = 'standard';
    }
    $first_join = $this->joinManager
      ->createInstance($id, $first);
    $this->first_alias = $this->query
      ->addTable($this->definition['field table'], $this->relationship, $first_join);
    // Second, relate the field table to the entity specified using
    // the entity id on the field table and the entity's id field.
    $second = [
      'left_table' => $this->first_alias,
      'left_field' => 'entity_id',
      'table' => $this->definition['base'],
      'field' => $this->definition['base field'],
      'adjusted' => TRUE,
    ];
    if (!empty($this->options['required'])) {
      $second['type'] = 'INNER';
    }
    if (!empty($def['join_id'])) {
      $id = $def['join_id'];
    }
    else {
      $id = 'standard';
    }
    $second_join = $this->joinManager
      ->createInstance($id, $second);
    $second_join->adjusted = TRUE;
    // use a short alias for this:
    $alias = $this->definition['field_name'] . '_' . $this->table;
    $this->alias = $this->query
      ->addRelationship($alias, $second_join, $this->definition['base'], $this->relationship);
  }
}Members
| Title Sort descending | Modifiers | Object type | Summary | Overriden Title | Overrides | 
|---|---|---|---|---|---|
| DependencySerializationTrait::$_entityStorages | protected | property | An array of entity type IDs keyed by the property name of their storages. | ||
| DependencySerializationTrait::$_serviceIds | protected | property | An array of service IDs keyed by property name used for serialization. | ||
| DependencySerializationTrait::__sleep | public | function | 2 | ||
| DependencySerializationTrait::__wakeup | public | function | #[\ReturnTypeWillChange] | 2 | |
| EntityReverse::create | public static | function | Creates an instance of the plugin. | Overrides PluginBase::create | |
| EntityReverse::query | public | function | Called to implement a relationship in a query. | Overrides RelationshipPluginBase::query | |
| EntityReverse::__construct | public | function | Constructs an EntityReverse object. | Overrides HandlerBase::__construct | |
| HandlerBase::$field | public | property | With field you can override the realField if the real field is not set. | ||
| HandlerBase::$moduleHandler | protected | property | The module handler. | 3 | |
| HandlerBase::$query | public | property | Where the $query object will reside. | 7 | |
| HandlerBase::$realField | public | property | The real field. | ||
| HandlerBase::$relationship | public | property | The relationship used for this field. | ||
| HandlerBase::$table | public | property | The table this handler is attached to. | ||
| HandlerBase::$tableAlias | public | property | The alias of the table of this handler which is used in the query. | ||
| HandlerBase::$viewsData | protected | property | The views data service. | ||
| HandlerBase::acceptExposedInput | public | function | Take input from exposed handlers and assign to this handler, if necessary. | 1 | |
| HandlerBase::access | public | function | Check whether given user has access to this handler. | Overrides ViewsHandlerInterface::access | 4 | 
| HandlerBase::adminLabel | public | function | Return a string representing this handler's name in the UI. | Overrides ViewsHandlerInterface::adminLabel | 4 | 
| HandlerBase::adminSummary | public | function | Provide text for the administrative summary. | Overrides ViewsHandlerInterface::adminSummary | 4 | 
| HandlerBase::breakString | public static | function | Breaks x,y,z and x+y+z into an array. | Overrides ViewsHandlerInterface::breakString | |
| HandlerBase::broken | public | function | Determines if the handler is considered 'broken'. | Overrides ViewsHandlerInterface::broken | |
| HandlerBase::buildExposedForm | public | function | Render our chunk of the exposed handler form when selecting. | 1 | |
| HandlerBase::buildExposeForm | public | function | Form for exposed handler options. | 2 | |
| HandlerBase::buildExtraOptionsForm | public | function | Provide a form for setting options. | 1 | |
| HandlerBase::buildGroupByForm | public | function | Provide a form for aggregation settings. | 1 | |
| HandlerBase::canExpose | public | function | Determine if a handler can be exposed. | 2 | |
| HandlerBase::caseTransform | protected | function | Transform a string by a certain method. | ||
| HandlerBase::defaultExposeOptions | public | function | Set new exposed option defaults when exposed setting is flipped on. | 2 | |
| HandlerBase::defineExtraOptions | public | function | Provide defaults for the handler. | ||
| HandlerBase::displayExposedForm | public | function | Displays the Expose form. | ||
| HandlerBase::ensureMyTable | public | function | Ensures that the main table for this handler is in the query. | Overrides ViewsHandlerInterface::ensureMyTable | 2 | 
| HandlerBase::exposedInfo | public | function | Get information about the exposed form for the form renderer. | 1 | |
| HandlerBase::getDateField | public | function | Creates cross-database SQL dates. | 2 | |
| HandlerBase::getDateFormat | public | function | Creates cross-database SQL date formatting. | 2 | |
| HandlerBase::getEntityType | public | function | Determines the entity type used by this handler. | Overrides ViewsHandlerInterface::getEntityType | |
| HandlerBase::getField | public | function | Shortcut to get a handler's raw field value. | Overrides ViewsHandlerInterface::getField | |
| HandlerBase::getJoin | public | function | Get the join object that should be used for this handler. | Overrides ViewsHandlerInterface::getJoin | |
| HandlerBase::getModuleHandler | protected | function | Gets the module handler. | ||
| HandlerBase::getTableJoin | public static | function | Fetches a handler to join one table to a primary table from the data cache. | Overrides ViewsHandlerInterface::getTableJoin | |
| HandlerBase::getViewsData | protected | function | Gets views data service. | ||
| HandlerBase::hasExtraOptions | public | function | Determines if the handler has extra options. | 1 | |
| HandlerBase::isAGroup | public | function | Returns TRUE if the exposed filter works like a grouped filter. | 1 | |
| HandlerBase::isExposed | public | function | Determine if this item is 'exposed'. | ||
| HandlerBase::multipleExposedInput | public | function | Define if the exposed input has to be submitted multiple times. | 1 | |
| HandlerBase::placeholder | protected | function | Provides a unique placeholders for handlers. | ||
| HandlerBase::postExecute | public | function | Run after the view is executed, before the result is cached. | Overrides ViewsHandlerInterface::postExecute | |
| HandlerBase::preQuery | public | function | Run before the view is built. | Overrides ViewsHandlerInterface::preQuery | 2 | 
| HandlerBase::sanitizeValue | public | function | Sanitize the value for output. | Overrides ViewsHandlerInterface::sanitizeValue | |
| HandlerBase::setModuleHandler | public | function | Sets the module handler. | ||
| HandlerBase::setRelationship | public | function | Sets up any needed relationship. | Overrides ViewsHandlerInterface::setRelationship | |
| HandlerBase::setViewsData | public | function | |||
| HandlerBase::showExposeButton | public | function | Shortcut to display the expose/hide button. | 2 | |
| HandlerBase::showExposeForm | public | function | Shortcut to display the exposed options form. | Overrides ViewsHandlerInterface::showExposeForm | |
| HandlerBase::storeExposedInput | public | function | If set to remember exposed input in the session, store it there. | 1 | |
| HandlerBase::submitExposed | public | function | Submit the exposed handler form. | ||
| HandlerBase::submitExposeForm | public | function | Perform any necessary changes to the form exposes prior to storage. | ||
| HandlerBase::submitExtraOptionsForm | public | function | Perform any necessary changes to the form values prior to storage. | ||
| HandlerBase::submitFormCalculateOptions | public | function | Calculates options stored on the handler. | 1 | |
| HandlerBase::submitGroupByForm | public | function | Perform any necessary changes to the form values prior to storage. | 1 | |
| HandlerBase::submitTemporaryForm | public | function | Submits a temporary form. | ||
| HandlerBase::validate | public | function | Validate that the plugin is correct and can be saved. | Overrides PluginBase::validate | 2 | 
| HandlerBase::validateExposed | public | function | Validate the exposed handler form. | 4 | |
| HandlerBase::validateExposeForm | public | function | Validate the options form. | 2 | |
| HandlerBase::validateExtraOptionsForm | public | function | Validate the options form. | ||
| MessengerTrait::$messenger | protected | property | The messenger. | 27 | |
| MessengerTrait::messenger | public | function | Gets the messenger. | 27 | |
| MessengerTrait::setMessenger | public | function | Sets the messenger. | ||
| PluginBase::$configuration | protected | property | Configuration information passed into the plugin. | 1 | |
| PluginBase::$definition | public | property | Plugins' definition. | ||
| PluginBase::$displayHandler | public | property | The display object this plugin is for. | ||
| PluginBase::$options | public | property | Options for this plugin will be held here. | ||
| PluginBase::$pluginDefinition | protected | property | The plugin implementation definition. | 1 | |
| PluginBase::$pluginId | protected | property | The plugin_id. | ||
| PluginBase::$renderer | protected | property | Stores the render API renderer. | 3 | |
| PluginBase::$usesOptions | protected | property | Denotes whether the plugin has an additional options form. | 8 | |
| PluginBase::$view | public | property | The top object of a view. | 1 | |
| PluginBase::DERIVATIVE_SEPARATOR | constant | A string which is used to separate base plugin IDs from the derivative ID. | |||
| PluginBase::destroy | public | function | Clears a plugin. | Overrides ViewsPluginInterface::destroy | 2 | 
| PluginBase::doFilterByDefinedOptions | protected | function | Do the work to filter out stored options depending on the defined options. | ||
| PluginBase::filterByDefinedOptions | public | function | Filter out stored options depending on the defined options. | Overrides ViewsPluginInterface::filterByDefinedOptions | |
| PluginBase::getAvailableGlobalTokens | public | function | Returns an array of available token replacements. | Overrides ViewsPluginInterface::getAvailableGlobalTokens | |
| PluginBase::getBaseId | public | function | Gets the base_plugin_id of the plugin instance. | Overrides DerivativeInspectionInterface::getBaseId | |
| PluginBase::getDerivativeId | public | function | Gets the derivative_id of the plugin instance. | Overrides DerivativeInspectionInterface::getDerivativeId | |
| PluginBase::getPluginDefinition | public | function | Gets the definition of the plugin implementation. | Overrides PluginInspectionInterface::getPluginDefinition | 2 | 
| PluginBase::getPluginId | public | function | Gets the plugin_id of the plugin instance. | Overrides PluginInspectionInterface::getPluginId | |
| PluginBase::getProvider | public | function | Returns the plugin provider. | Overrides ViewsPluginInterface::getProvider | |
| PluginBase::getRenderer | protected | function | Returns the render API renderer. | 1 | |
| PluginBase::globalTokenForm | public | function | Adds elements for available core tokens to a form. | Overrides ViewsPluginInterface::globalTokenForm | |
| PluginBase::globalTokenReplace | public | function | Returns a string with any core tokens replaced. | Overrides ViewsPluginInterface::globalTokenReplace | |
| PluginBase::INCLUDE_ENTITY | constant | Include entity row languages when listing languages. | |||
| PluginBase::INCLUDE_NEGOTIATED | constant | Include negotiated languages when listing languages. | |||
| PluginBase::isConfigurable | public | function | Determines if the plugin is configurable. | ||
| PluginBase::listLanguages | protected | function | Makes an array of languages, optionally including special languages. | ||
| PluginBase::pluginTitle | public | function | Return the human readable name of the display. | Overrides ViewsPluginInterface::pluginTitle | |
| PluginBase::preRenderAddFieldsetMarkup | public static | function | Moves form elements into fieldsets for presentation purposes. | Overrides ViewsPluginInterface::preRenderAddFieldsetMarkup | |
| PluginBase::preRenderFlattenData | public static | function | Flattens the structure of form elements. | Overrides ViewsPluginInterface::preRenderFlattenData | |
| PluginBase::queryLanguageSubstitutions | public static | function | Returns substitutions for Views queries for languages. | ||
| PluginBase::setOptionDefaults | protected | function | Fills up the options of the plugin with defaults. | ||
| PluginBase::submitOptionsForm | public | function | Handle any special handling on the validate form. | Overrides ViewsPluginInterface::submitOptionsForm | 16 | 
| PluginBase::summaryTitle | public | function | Returns the summary of the settings in the display. | Overrides ViewsPluginInterface::summaryTitle | 6 | 
| PluginBase::themeFunctions | public | function | Provide a full list of possible theme templates used by this style. | Overrides ViewsPluginInterface::themeFunctions | 1 | 
| PluginBase::trustedCallbacks | public static | function | Lists the trusted callbacks provided by the implementing class. | Overrides TrustedCallbackInterface::trustedCallbacks | 6 | 
| PluginBase::unpackOptions | public | function | Unpacks options over our existing defaults. | Overrides ViewsPluginInterface::unpackOptions | |
| PluginBase::usesOptions | public | function | Returns the usesOptions property. | Overrides ViewsPluginInterface::usesOptions | 8 | 
| PluginBase::validateOptionsForm | public | function | Validate the options form. | Overrides ViewsPluginInterface::validateOptionsForm | 15 | 
| PluginBase::viewsTokenReplace | protected | function | Replaces Views' tokens in a given string. | 1 | |
| PluginBase::VIEWS_QUERY_LANGUAGE_SITE_DEFAULT | constant | Query string to indicate the site default language. | |||
| RelationshipPluginBase::$alias | public | property | The relationship alias. | ||
| RelationshipPluginBase::buildOptionsForm | public | function | Provide a form to edit options for this plugin. | Overrides HandlerBase::buildOptionsForm | 2 | 
| RelationshipPluginBase::calculateDependencies | public | function | Calculates dependencies for the configured plugin. | Overrides HandlerBase::calculateDependencies | 1 | 
| RelationshipPluginBase::defineOptions | protected | function | Information about options for all kinds of purposes will be held here. | Overrides HandlerBase::defineOptions | 2 | 
| RelationshipPluginBase::init | public | function | Overrides \Drupal\views\Plugin\views\HandlerBase::init(). | Overrides HandlerBase::init | |
| RelationshipPluginBase::usesGroupBy | public | function | Provides the handler some groupby. | Overrides HandlerBase::usesGroupBy | |
| StringTranslationTrait::$stringTranslation | protected | property | The string translation service. | 3 | |
| StringTranslationTrait::formatPlural | protected | function | Formats a string containing a count of items. | ||
| StringTranslationTrait::getNumberOfPlurals | protected | function | Returns the number of plurals supported by a given language. | ||
| StringTranslationTrait::getStringTranslation | protected | function | Gets the string translation service. | ||
| StringTranslationTrait::setStringTranslation | public | function | Sets the string translation service to use. | 2 | |
| StringTranslationTrait::t | protected | function | Translates a string to the current language or to a given language. | ||
| TrustedCallbackInterface::THROW_EXCEPTION | constant | Untrusted callbacks throw exceptions. | |||
| TrustedCallbackInterface::TRIGGER_SILENCED_DEPRECATION | constant | Untrusted callbacks trigger silenced E_USER_DEPRECATION errors. | |||
| TrustedCallbackInterface::TRIGGER_WARNING | constant | Untrusted callbacks trigger E_USER_WARNING errors. | 
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.
