drupal 8 taxonomía plazo, el valor en el nodo

Drupal\nodo\Entity\Nodos de Objeto
(
[in_preview] =>
[valores:protected] => Matriz
(
[vid] => Matriz
(
[x-default] => 1
)

        [langcode] => Array
            (
                [x-default] => en
            )

        [field_destination] => Array
            (
                [x-default] => Array
                    (
                        [0] => Array
                            (
                                [target_id] => 2
                            )

                    )

            )

No es capaz de obtener field_destination valor directamente. Es una taxonomía plazo conectado con el tipo de contenido. Cualquier ayuda appriciated.

OriginalEl autor user32012 | 2016-05-09

3 respuestas

  1. 17

    A construir en VJamie del respuesta.

    Usted tendrá que establecer una declaración de uso en la parte superior de la secuencia de comandos;

    use Drupal\taxonomy\Entity\Term;
    

    O, prefijo de la instancia de la clase con el espacio de nombres;

    $term = \Drupal\taxonomy\Entity\Term::load($node->get('field_destination')->target_id);
    

    Que va a deshacerse de los fatals.

    OriginalEl autor Christian

  2. 9

    También puede utilizar algunos métodos de EntityReferenceFieldItemList:
    Consigue las entidades a que se hace referencia en este campo, conservando elemento de campo de deltas:

    $node->get('field_destination')->referencedEntities();
    

    La esperanza de que será útil para usted

    Si no me equivoco, $node->get('field_destination')->getEntity(); simplemente volver $node sí mismo. El referencedEntities() método es muy útil, aunque.
    es correcto, getEntity() devuelve el campo de los padres, es decir, de su Nodo. referencedEntities() es la respuesta correcta.
    Muchas gracias por sus respuestas. Voy a quitar getEntity() de mi respuesta para evitar la confusión.
    Una alta precisión en la respuesta
    Muchas gracias. Espero que te ayudó.

    OriginalEl autor wau

  3. 7

    El siguiente código conseguirá que el término objeto que necesita.

    $term = Term::load($node->get('field_destination')->target_id);
    

    Si usted necesita el nombre de ese plazo, puede hacer lo siguiente

    $name = $term->getName();
    

    Espero que esto ayude!

    Cómo siempre Término::cargar causando un problema.Fatal error: Class ‘Drupal\rest\Plugin\Bloque\Término’ no encontrado .
    Probablemente usted está importando la clase equivocada.
    He intentado añadir use \Drupal\taxonomy\Entity; y utiliza Term::load($node->get('field_destination')->target_id); pero no pudo. ¿Qué clase ¿carga?

    OriginalEl autor VJamie

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *