function EntityReference::render

Same name in this branch
  1. 11.x core/modules/views/src/Plugin/views/display/EntityReference.php \Drupal\views\Plugin\views\display\EntityReference::render()
Same name in other branches
  1. 9 core/modules/views/src/Plugin/views/display/EntityReference.php \Drupal\views\Plugin\views\display\EntityReference::render()
  2. 9 core/modules/views/src/Plugin/views/style/EntityReference.php \Drupal\views\Plugin\views\style\EntityReference::render()
  3. 8.9.x core/modules/views/src/Plugin/views/display/EntityReference.php \Drupal\views\Plugin\views\display\EntityReference::render()
  4. 8.9.x core/modules/views/src/Plugin/views/style/EntityReference.php \Drupal\views\Plugin\views\style\EntityReference::render()
  5. 10 core/modules/views/src/Plugin/views/display/EntityReference.php \Drupal\views\Plugin\views\display\EntityReference::render()
  6. 10 core/modules/views/src/Plugin/views/style/EntityReference.php \Drupal\views\Plugin\views\style\EntityReference::render()

Overrides StylePluginBase::render

File

core/modules/views/src/Plugin/views/style/EntityReference.php, line 71

Class

EntityReference
EntityReference style plugin.

Namespace

Drupal\views\Plugin\views\style

Code

public function render() {
    if (!empty($this->view->live_preview)) {
        return parent::render();
    }
    // Group the rows according to the grouping field, if specified.
    $sets = $this->renderGrouping($this->view->result, $this->options['grouping']);
    // Grab the alias of the 'id' field added by
    // entity_reference_plugin_display.
    $id_field_alias = $this->view->storage
        ->get('base_field');
    // @todo We don't display grouping info for now. Could be useful for select
    // widget, though.
    $results = [];
    foreach ($sets as $records) {
        foreach ($records as $values) {
            $results[$values->{$id_field_alias}] = $this->view->rowPlugin
                ->render($values);
            // Sanitize HTML, remove line breaks and extra whitespace.
            $results[$values->{$id_field_alias}]['#post_render'][] = function ($html, array $elements) {
                return Xss::filterAdmin(preg_replace('/\\s\\s+/', ' ', str_replace("\n", '', $html)));
            };
        }
    }
    return $results;
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.