Je sais que je peux mettre à jour (ou définir une valeur pour) un champ de référence d'entité dans Drupal 7 avec un code similaire au suivant.
$node['field_code_used_by'][LANGUAGE_NONE][0]['target_id'] = $id;
Je veux définir par programme une valeur pour mon champ de référence d'entité utilisateur dans Drupal 8.
J'ai essayé avec $node->field_code_used_by->setValue(1);
et $node->field_code_used_by->entity->value = 1;
mais aucun d'eux n'a fonctionné.
Comment puis-je définir la valeur d'un champ de référence d'entité?
Comme en D7, la propriété principale d'un champ de référence en D8 est toujours
target id
:La
entity
propriété est une valeur calculée. Si vous placez un objet dans cette valeur, drupal le reconvertira en id avant de l'enregistrer dans la base de données.Champs à valeurs multiples
Ajoutez un élément à un champ à valeurs multiples:
La propriété
target_id
n'est pas nécessaire, car il s'agit de la propriété principale et utilisée par défaut. Donc, pour la plupart des champs, vous pouvez ajouter une valeur comme dans un simple tableau php, qui est facile à retenir:la source