class EntityReverse in Views (for Drupal 7) 8.3
A relationship handlers which reverse entity references.
Plugin annotation
@Plugin(
  id = "entity_reverse",
  module = "field"
)
Hierarchy
- class \Drupal\Component\Plugin\PluginBase implements DerivativeInspectionInterface, PluginInspectionInterface- class \Drupal\views\Plugin\views\PluginBase- class \Drupal\views\Plugin\views\HandlerBase- class \Drupal\views\Plugin\views\relationship\RelationshipPluginBase- class \Views\field\Plugin\views\relationship\EntityReverse
 
 
- class \Drupal\views\Plugin\views\relationship\RelationshipPluginBase
 
- class \Drupal\views\Plugin\views\HandlerBase
 
- class \Drupal\views\Plugin\views\PluginBase
Expanded class hierarchy of EntityReverse
Related topics
File
- lib/Views/ field/ Plugin/ views/ relationship/ EntityReverse.php, line 24 
- Definition of Views\field\Plugin\views\relationship\EntityReverse.
Namespace
Views\field\Plugin\views\relationshipView source
class EntityReverse extends RelationshipPluginBase {
  public function init(ViewExecutable $view, &$options) {
    parent::init($view, $options);
    $this->field_info = field_info_field($this->definition['field_name']);
  }
  /**
   * 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_fetch_data($this->table);
    $left_field = $views_data['table']['base']['field'];
    $first = array(
      '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 = drupal_container()
      ->get('plugin.manager.views.join')
      ->createInstance($id, $first);
    $this->first_alias = $this->query
      ->add_table($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 = array(
      '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 = drupal_container()
      ->get('plugin.manager.views.join')
      ->createInstance($id, $second);
    $second_join->adjusted = TRUE;
    // use a short alias for this:
    $alias = $this->definition['field_name'] . '_' . $this->table;
    $this->alias = $this->query
      ->add_relationship($alias, $second_join, $this->definition['base'], $this->relationship);
  }
}Members
| Name   | Modifiers | Type | Description | Overrides | 
|---|---|---|---|---|
| EntityReverse:: | public | function | Init handler to let relationships live on tables other than
the table they operate on. Overrides RelationshipPluginBase:: | |
| EntityReverse:: | public | function | Called to implement a relationship in a query. Overrides RelationshipPluginBase:: | |
| HandlerBase:: | public | property | When a field has been moved this property is set. | |
| HandlerBase:: | public | property | When a table has been moved this property is set. | |
| HandlerBase:: | public | property | With field you can override the realField if the real field is not set. | |
| HandlerBase:: | public | property | Where the $query object will reside: | 1 | 
| HandlerBase:: | public | property | The actual field in the database table, maybe different on other kind of query plugins/special handlers. | |
| HandlerBase:: | public | property | The relationship used for this field. | |
| HandlerBase:: | public | property | The table this handler is attached to. | |
| HandlerBase:: | public | property | The alias of the table of this handler which is used in the query. | |
| HandlerBase:: | public | function | Take input from exposed handlers and assign to this handler, if necessary. | 1 | 
| HandlerBase:: | public | function | Check whether current user has access to this handler. | 7 | 
| HandlerBase:: | public | function | Return a string representing this handler's name in the UI. | 9 | 
| HandlerBase:: | public | function | Provide text for the administrative summary | 4 | 
| HandlerBase:: | public static | function | Breaks x,y,z and x+y+z into an array. Numeric only. | |
| HandlerBase:: | public static | function | Breaks x,y,z and x+y+z into an array. Works for strings. | |
| HandlerBase:: | public | function | Determine if the handler is considered 'broken', meaning it's a a placeholder used when a handler can't be found. | 6 | 
| HandlerBase:: | public | function | Render our chunk of the exposed handler form when selecting | 1 | 
| HandlerBase:: | public | function | Form for exposed handler options. | 2 | 
| HandlerBase:: | public | function | Provide a form for setting options. | 1 | 
| HandlerBase:: | public | function | Provide a form for aggregation settings. | 1 | 
| HandlerBase:: | public | function | Determine if a handler can be exposed. | 2 | 
| HandlerBase:: | protected | function | Transform a string by a certain method. | |
| HandlerBase:: | public | function | Set new exposed option defaults when exposed setting is flipped on. | 2 | 
| HandlerBase:: | public | function | Provide defaults for the handler. | |
| HandlerBase:: | public | function | Ensure the main table for this handler is in the query. This is used a lot. | 8 | 
| HandlerBase:: | public | function | Get information about the exposed form for the form renderer. | 1 | 
| HandlerBase:: | public | function | Shortcut to get a handler's raw field value. | |
| HandlerBase:: | public | function | Get the join object that should be used for this handler. | |
| HandlerBase:: | public | function | Creates cross-database SQL dates. | |
| HandlerBase:: | public | function | Creates cross-database SQL date formatting. | |
| HandlerBase:: | public static | function | Fetches a handler to join one table to a primary table from the data cache. | |
| HandlerBase:: | public static | function | Figure out what timezone we're in; needed for some date manipulations. | |
| HandlerBase:: | public | function | If a handler has 'extra options' it will get a little settings widget and another form called extra_options. | 1 | 
| HandlerBase:: | public | function | Returns TRUE if the exposed filter works like a grouped filter. | 1 | 
| HandlerBase:: | public | function | Determine if this item is 'exposed', meaning it provides form elements to let users modify the view. | |
| HandlerBase:: | public | function | Define if the exposed input has to be submitted multiple times. This is TRUE when exposed filters grouped are using checkboxes as widgets. | 1 | 
| HandlerBase:: | protected | function | Provides a unique placeholders for handlers. | |
| HandlerBase:: | public | function | Run after the view is executed, before the result is cached. | |
| HandlerBase:: | public | function | Run before the view is built. | 1 | 
| HandlerBase:: | protected | function | Sanitize the value for output. | |
| HandlerBase:: | public | function | Called just prior to query(), this lets a handler set up any relationship it needs. | |
| HandlerBase:: | public | function | Shortcut to display the expose/hide button. | 2 | 
| HandlerBase:: | public | function | Shortcut to display the exposed options form. | |
| HandlerBase:: | public | function | If set to remember exposed input in the session, store it there. | 1 | 
| HandlerBase:: | public | function | Submit the exposed handler form | |
| HandlerBase:: | public | function | Perform any necessary changes to the form exposes prior to storage. There is no need for this function to actually store the data. | |
| HandlerBase:: | public | function | Perform any necessary changes to the form values prior to storage. There is no need for this function to actually store the data. | |
| HandlerBase:: | public | function | Perform any necessary changes to the form values prior to storage. There is no need for this function to actually store the data. | 1 | 
| HandlerBase:: | public | function | Perform any necessary changes to the form values prior to storage.
There is no need for this function to actually store the data. Overrides PluginBase:: | 6 | 
| HandlerBase:: | public | function | Validates the handler against the complete View. Overrides PluginBase:: | 1 | 
| HandlerBase:: | public | function | Validate the exposed handler form | 4 | 
| HandlerBase:: | public | function | Validate the options form. | 1 | 
| HandlerBase:: | public | function | Validate the options form. | |
| HandlerBase:: | public | function | Validate the options form. Overrides PluginBase:: | 4 | 
| HandlerBase:: | public | function | Constructs a Handler object. Overrides PluginBase:: | |
| PluginBase:: | protected | property | Configuration information passed into the plugin. | 1 | 
| PluginBase:: | public | property | Plugins's definition | |
| PluginBase:: | public | property | The display object this plugin is for. | |
| PluginBase:: | public | property | Options for this plugin will be held here. | |
| PluginBase:: | protected | property | The plugin implementation definition. | 1 | 
| PluginBase:: | protected | property | The plugin_id. | |
| PluginBase:: | protected | property | Denotes whether the plugin has an additional options form. | 8 | 
| PluginBase:: | public | property | The top object of a view. | 1 | 
| PluginBase:: | public | function | Provide a list of additional theme functions for the theme information page | |
| PluginBase:: | constant | A string which is used to separate base plugin IDs from the derivative ID. | ||
| PluginBase:: | public | function | Clears a plugin. | 2 | 
| PluginBase:: | public | function | Gets the base_plugin_id of the plugin instance. Overrides DerivativeInspectionInterface:: | |
| PluginBase:: | public | function | Gets the derivative_id of the plugin instance. Overrides DerivativeInspectionInterface:: | |
| PluginBase:: | public | function | Gets the definition of the plugin implementation. Overrides PluginInspectionInterface:: | 3 | 
| PluginBase:: | public | function | Gets the plugin_id of the plugin instance. Overrides PluginInspectionInterface:: | |
| PluginBase:: | public | function | Determines if the plugin is configurable. | |
| PluginBase:: | public | function | Return the human readable name of the display. | |
| PluginBase:: | protected | function | ||
| PluginBase:: | public | function | Returns the summary of the settings in the display. | 6 | 
| PluginBase:: | public | function | Provide a full list of possible theme templates used by this style. | 1 | 
| PluginBase:: | public | function | Unpack options over our existing defaults, drilling down into arrays so that defaults don't get totally blown away. | |
| PluginBase:: | public | function | Returns the usesOptions property. | 8 | 
| RelationshipPluginBase:: | public | function | Default options form that provides the label widget that all fields
should have. Overrides HandlerBase:: | 4 | 
| RelationshipPluginBase:: | protected | function | Information about options for all kinds of purposes will be held here.
@code
'option_name' => array( Overrides HandlerBase:: | 4 | 
| RelationshipPluginBase:: | function | Get this field's label. | ||
| RelationshipPluginBase:: | public | function | You can't groupby a relationship. Overrides HandlerBase:: | 
