Ejemplo: quiero obtener todos los nombres de etiqueta que están dentro de field_tags del nodo 5.
Puedo obtener el target_id con $ node-> field_tags-> getValue () ;
Pero el problema es que no sé a qué entidad pertenece el valor target_id. Podría ser una ID de nodo, ID de término, ID de usuario. Sin esa información, no puedo usar target_id para obtener el nombre de la etiqueta.
¿Cómo puedo obtener todos los nombres de un campo de referencia de entidad?
$node->toArray();
seguro se ve mucho más corto y limpio que usar\Drupal::service('entity_field.manager')->getFieldDefinitions('node', 'article');
print_r($entity->toArray())
Resuelve este problema. Puedo obtener todos los detalles de los campos. Muchas gracias.Un campo de referencia de entidad, por definición, solo puede apuntar a un tipo de entidad para que pueda saber cuál es su tipo de destino llamando a
getSetting()
la definición de campo.O mejor aún, use
EntityReferenceFieldItemList::referencedEntities()
para extraer las entidades referenciadas del nodo y los datos asociados que necesita.fuente
print_r($node->field_tag->referencedEntities());
parece ser un gran recurso, tuve que actualizar mi instancia de AWS , solo para poder hacerlo, ya que seguía recibiendo WSOD.Or better yet
método. El primer método es bueno, pero requerirá si las declaraciones verifican el tipo de destino y luego obtienen el valor. La respuesta de Berdir es más eficiente ya que no hay necesidad de cheques.target_type
valor de unentity_reference
campo y busqué por todos lados ... hasta que respondiste mi pregunta aquí.