You are here

public function EntityLabel::render in Drupal 9

Same name and namespace in other branches
  1. 8 core/modules/views/src/Plugin/views/field/EntityLabel.php \Drupal\views\Plugin\views\field\EntityLabel::render()

Renders the field.

Parameters

\Drupal\views\ResultRow $values: The values retrieved from a single row of a view's query result.

Return value

string|\Drupal\Component\Render\MarkupInterface The rendered output. If the output is safe it will be wrapped in an object that implements MarkupInterface. If it is empty or unsafe it will be a string.

Overrides FieldPluginBase::render

File

core/modules/views/src/Plugin/views/field/EntityLabel.php, line 98

Class

EntityLabel
Field handler to display entity label optionally linked to entity page.

Namespace

Drupal\views\Plugin\views\field

Code

public function render(ResultRow $values) {
  $type = $this
    ->getValue($values, $this->definition['entity type field']);
  $value = $this
    ->getValue($values);
  if (empty($this->loadedReferencers[$type][$value])) {
    return;
  }

  /** @var \Drupal\Core\Entity\EntityInterface $entity */
  $entity = $this->loadedReferencers[$type][$value];
  if (!empty($this->options['link_to_entity'])) {
    try {
      $this->options['alter']['url'] = $entity
        ->toUrl();
      $this->options['alter']['make_link'] = TRUE;
    } catch (UndefinedLinkTemplateException $e) {
      $this->options['alter']['make_link'] = FALSE;
    } catch (EntityMalformedException $e) {
      $this->options['alter']['make_link'] = FALSE;
    }
  }
  return $this
    ->sanitizeValue($entity
    ->label());
}