12.02.2026 | Michael Ebert

Get value of an entity field

entity_field_value.php
// For single value fields.
$entity->field_name->value;

// If you don`t know the main property.
$main_property_name = $entity->field_name->getMainPropertyName();

// For multiple value fields.
$entity->field_name->getValue();

Issue:

You often need to access a value of a field within a Drupal entity programmatically, but you may encounter challenges in doing so due to the complexity of Drupal's data structure.

Solution:

$entity->field_myfield->value

  • Direct Access: This approach directly accesses the value property of the field item.
  • Single Value: This is typically used when you are certain that the field holds a single value (e.g., a single text value, a single number, etc.). This is common with fields that are configured to store only one value.
  • Simplicity: It provides a simple and straightforward way to get the value if the field only holds one item.
  • Assumptions: It assumes that the field item exists and that the value property is the correct way to access the field data.

$entity->field_myfield->getMainPropertyName()

  • Main Property of the Field: getMainPropertyName() returns the main property of a field. For most fields, this is the value property, but it can also be another property depending on the field type. For example, for a reference field, the main property might be target_id.
  • Field Data Model: Each field in Drupal has a data model that can contains various properties. The main property is considered the primary piece of information for the field.
  • Usage in Entities: This method is useful when you want to use the field in a general context without knowing exactly which specific property represents the main information.

$entity->field_myfield->getValue()

  • Method Access: This approach uses the getValue() method to retrieve the field's value.
  • Array of Values: getValue() returns an array of all the field values. This is useful for fields that can hold multiple values (e.g., multiple text values, multiple references, etc.).
  • Structured Data: The returned array provides more structure and includes potentially other properties of the field items, not just the value property. For example, an image field might return an array with target_id, alt, title, etc.
  • Flexibility: This method is more flexible and can be used for both single and multi-value fields. You will need to handle the array appropriately in your code.

Conclusion:

  • Use $entity->field_myfield->value if you are dealing with a single-value field and want a straightforward, direct access to the field value.
  • Use $entity->field_myfield->getMainPropertyName() if you want to determine the main property of the field in a general way without knowing the specific field type.
  • Use $entity->field_myfield->getValue() if you need to handle multiple values or require the complete array structure of the field data, providing more flexibility and additional information.