Forked from dreambubbler/ExampleAttachTermsProgrammatically.php
Created
October 4, 2018 17:15
-
-
Save oksana-c/814124d5413a5c8ca1c319effa9c21a7 to your computer and use it in GitHub Desktop.
Drupal 8: Attach terms to entity programmatically
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
use Drupal\node\Entity\Node; | |
/** | |
* Before attaching a term(s) to a term reference field, | |
* Must know: | |
* - field_example_name: the full name of the term reference field | |
* - tid: the term ID(s) to attach | |
* | |
* Keep in mind that this example uses Node::load() | |
* but you can use any Entity::load() | |
* e.g. User::load(), Term::load(), etc. | |
*/ | |
// Example 1: attaching a single term | |
$node = \Drupal\node\Entity\Node::load($nid); | |
// Attach only one term | |
$tid = 1; // The ID of the term to attach. | |
$node->set('field_example_name', $tid); | |
$node->save(); | |
// End of Example 1 /> | |
// Example 2: attaching multiple terms | |
$node2 = \Drupal\node\Entity\Node::load($nid2); | |
// To attach multiple terms, the term IDs must be in an array. | |
$multiple_tids = array(1, 2, 3); // Each is Term ID of an existing term. | |
$node2->set('field_example_name', $multiple_tids); // Note that field_example_name must allow multiple terms. | |
$node2->save(); | |
// End of Example 2 /> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment