public FormatterBase::view(FieldItemListInterface $items, $langcode = NULL)
Builds a renderable array for a fully themed field.
Parameters
\Drupal\Core\Field\FieldItemListInterface $items: The field values to be rendered.
string $langcode: (optional) The language that should be used to render the field. Defaults to the current content language.
Return value
array A renderable array for a themed field with its label and all its values.
Overrides FormatterInterface::view
File
- core/lib/Drupal/Core/Field/FormatterBase.php, line 75
Class
- FormatterBase
- Base class for 'Field formatter' plugin implementations.
Namespace
Drupal\Core\Field
Code
public function view(FieldItemListInterface $items, $langcode = NULL) { // Default the language to the current content language. if (empty($langcode)) { $langcode = \Drupal::languageManager()->getCurrentLanguage(LanguageInterface::TYPE_CONTENT)->getId(); } $elements = $this->viewElements($items, $langcode); // If there are actual renderable children, use #theme => field, otherwise, // let access cacheability metadata pass through for correct bubbling. if (Element::children($elements)) { $entity = $items->getEntity(); $entity_type = $entity->getEntityTypeId(); $field_name = $this->fieldDefinition->getName(); $info = array( '#theme' => 'field', '#title' => $this->fieldDefinition->getLabel(), '#label_display' => $this->label, '#view_mode' => $this->viewMode, '#language' => $items->getLangcode(), '#field_name' => $field_name, '#field_type' => $this->fieldDefinition->getType(), '#field_translatable' => $this->fieldDefinition->isTranslatable(), '#entity_type' => $entity_type, '#bundle' => $entity->bundle(), '#object' => $entity, '#items' => $items, '#formatter' => $this->getPluginId(), '#is_multiple' => $this->fieldDefinition->getFieldStorageDefinition()->isMultiple(), ); $elements = array_merge($info, $elements); } return $elements; }
Please login to continue.