Comment créer ou mettre à jours une entité Field Collection

Création

Pour ajouter du contenu dans un Field Collection, nous allons utiliser la classe Drupal\field_collection\Entity\FieldCollectionItem :

  1. $node = Node::load(1);
  2. $fc = FieldCollectionItem::create(
  3.   ['field_name' => 'field_bureau_de_vente']
  4. );
  5. $fc->set('field_adresse', "2 rue du lac");
  6. $fc->set('field_horaires_d_ouverture', "de 18h à 20h");
  7.  
  8. $fc->setHostEntity($node);
  9. $fc->save();

Dans cet exemple nous déclarons la clef field_name à la méthode create qui va correspondre au nom de notre field collection, ensuite nous enregistrons les valeurs de nos champs avec la methode  set() puis la méthode setHostEntity va indiquer à Field Collection dans quel nœud nous allons les enregistrer.


 /!\ Attention : la méthode setHostEntity($node) doit être placé avant la méthode save()
 

Mise a jours

Pour mettre à jours nos champs FC nous allons simplement charger notre FC à l'aide de la méthode load() avec comme paramètre la valeur du champs Field Collection présent dans notre nœud.

  1. $fc = FieldCollectionItem::load($node->field_bureau_de_vente->value);
  2.  
  3. $fc->set('field_adresse', '10 rue du bois vert');
  4. $fc->set('field_horaires_d_ouverture', 'de 13h à 14h');
  5.  
  6. $fc->save();

Suppression

  1. $fc = FieldCollectionItem::load($node->field_bureau_de_vente->value);
  2.  
  3. $fc->delete();
Drupal Field Collection

Ajouter un commentaire

Image CAPTCHA
Saisir les caractères affichés dans l'image.