public EntityViewBuilder::viewFieldItem(FieldItemInterface $item, $display = array())
Builds a renderable array for a single field item.
Parameters
\Drupal\Core\Field\FieldItemInterface $item: FieldItem to be displayed.
string|array $display_options: Can be either the name of a view mode, or an array of display settings. See EntityViewBuilderInterface::viewField() for more information.
Return value
array A renderable array for the field item.
Overrides EntityViewBuilderInterface::viewFieldItem
See also
\Drupal\Core\Entity\EntityViewBuilderInterface::viewField()
File
- core/lib/Drupal/Core/Entity/EntityViewBuilder.php, line 397
Class
- EntityViewBuilder
- Base class for entity view builders.
Namespace
Drupal\Core\Entity
Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | public function viewFieldItem(FieldItemInterface $item , $display = array ()) { $entity = $item ->getEntity(); $field_name = $item ->getFieldDefinition()->getName(); // Clone the entity since we are going to modify field values. $clone = clone $entity ; // Push the item as the single value for the field, and defer to viewField() // to build the render array for the whole list. $clone ->{ $field_name }->setValue( array ( $item ->getValue())); $elements = $this ->viewField( $clone ->{ $field_name }, $display ); // Extract the part of the render array we need. $output = isset( $elements [0]) ? $elements [0] : array (); if (isset( $elements [ '#access' ])) { $output [ '#access' ] = $elements [ '#access' ]; } return $output ; } |
Please login to continue.