protected function Select2EntityReferenceWidget::getOptions in Select 2 8
Returns the array of options for the widget.
Parameters
\Drupal\Core\Entity\FieldableEntityInterface $entity: The entity for which to return options.
Return value
array The array of options for the widget.
Overrides OptionsWidgetBase::getOptions
File
- src/
Plugin/ Field/ FieldWidget/ Select2EntityReferenceWidget.php, line 110  
Class
- Select2EntityReferenceWidget
 - Plugin implementation of the 'select2' widget.
 
Namespace
Drupal\select2\Plugin\Field\FieldWidgetCode
protected function getOptions(FieldableEntityInterface $entity) {
  if (!isset($this->options) && $this
    ->getSetting('autocomplete')) {
    // Get all currently selected options.
    $selected_options = [];
    foreach ($entity
      ->get($this->fieldDefinition
      ->getName()) as $item) {
      if ($item->{$this->column} !== NULL) {
        $selected_options[] = $item->{$this->column};
      }
    }
    if (!$selected_options) {
      return $this->options = [];
    }
    // Validate that the options are matching the target_type and handler
    // settings.
    $handler_settings = $this
      ->getSelectionSettings() + [
      'target_type' => $this
        ->getFieldSetting('target_type'),
      'handler' => $this
        ->getFieldSetting('handler'),
    ];
    return $this->options = static::getValidReferenceableEntities($selected_options, $handler_settings);
  }
  return parent::getOptions($entity);
}