function EntityReference::validate

Same name and namespace in other branches
  1. 9 core/modules/views/src/Plugin/views/display/EntityReference.php \Drupal\views\Plugin\views\display\EntityReference::validate()
  2. 8.9.x core/modules/views/src/Plugin/views/display/EntityReference.php \Drupal\views\Plugin\views\display\EntityReference::validate()
  3. 10 core/modules/views/src/Plugin/views/display/EntityReference.php \Drupal\views\Plugin\views\display\EntityReference::validate()

Overrides DisplayPluginBase::validate

File

core/modules/views/src/Plugin/views/display/EntityReference.php, line 219

Class

EntityReference
The plugin that handles an EntityReference display.

Namespace

Drupal\views\Plugin\views\display

Code

public function validate() {
    $errors = parent::validate();
    // Verify that search fields are set up.
    $style = $this->getOption('style');
    if (!isset($style['options']['search_fields'])) {
        $errors[] = $this->t('Display "@display" needs a selected search fields to work properly. See the settings for the Entity Reference list format.', [
            '@display' => $this->display['display_title'],
        ]);
    }
    else {
        // Verify that the search fields used actually exist.
        $fields = array_keys($this->handlers['field']);
        foreach ($style['options']['search_fields'] as $field_alias => $enabled) {
            if ($enabled && !in_array($field_alias, $fields)) {
                $errors[] = $this->t('Display "@display" uses field %field as search field, but the field is no longer present. See the settings for the Entity Reference list format.', [
                    '@display' => $this->display['display_title'],
                    '%field' => $field_alias,
                ]);
            }
        }
    }
    return $errors;
}

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