11
votes

Drupal 8 Obtenez la valeur Taxonomie Terme dans le nœud

Drupal \ Node \ Entity \ Objet nœud ( [in_preview] => [Valeurs: Protégé] => Array ( [Vid] => Array ( [x-défaut] => 1 )

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

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

                    )

            )


0 commentaires

6 Réponses :


9
votes

Le code suivant vous procurera le terme objet dont vous avez besoin.

$name = $term->getName();


2 commentaires

Comment Terme-Terminez-vous :: Causant une édition d'une édition.Fatal: Classe 'Drupal \ Rest \ Plugin \ Block \ Term \ Term' non trouvé.


@Vjamie j'ai essayé d'ajouter Utiliser \ drupal \ entité \ entité; et utilisé Terme :: Charge (Nœud $-> Obtenir ('Field_Destination') - Mais ça a échoué. Quelle classe avez-vous chargée?



17
votes

construire sur Vjamie réponse.

Vous devrez soit définir une déclaration d'utilisation en haut de votre script; xxx

ou préfixe l'instance de classe avec l'espace de noms; xxx

qui va se débarrasser des fatales.


0 commentaires

11
votes

Vous pouvez également utiliser certaines méthodes de l'entitéReferenceFieldemlist: Obtient les entités référencées par ce champ, préservant l'élément de champ deltas: xxx

espère qu'il vous sera utile


5 commentaires

Si je ne me trompe pas, $ nœud-> obtenez ('field_destination') -> getentality (); retournera simplement $ noode . La méthode référencée () est très utile cependant.


@MARCVANGEND est correct, gettity () renvoie le parent de champ, c'est-à-dire son nœud. Référencée () est la bonne réponse.


Merci beaucoup pour vos réponses. Je vais supprimer Getentality () de ma réponse pour éviter toute confusion.


Une réponse très précise


C'est la meilleure réponse-délicieusement.



1
votes

C'est la bonne façon sur la manière de l'atteindre xxx


0 commentaires

0
votes

L'entité code> est accessible directement à partir de n'importe quel champ de référence.

$node = 'myNode';
$termEntity = $node->get('field_taxonomy_reference')->entity;
if ($termEntity instanceof TermInterface) {
  $termLabel = $termEntity->label();
}


0 commentaires

1
votes

faire ce xxx

dans DRUPAL8 nous suivions suivant une approche de OOPS pour obtenir les valeurs.


0 commentaires