Drupal is a registered trademark of Dries Buytaert
cms 2.1.3 Update released for Drupal core (2.1.3)! drupal 10.5.11 Update released for Drupal core (10.5.11)! drupal 11.3.11 Update released for Drupal core (11.3.11)! drupal 11.2.13 Update released for Drupal core (11.2.13)! drupal 10.6.10 Update released for Drupal core (10.6.10)! cms 2.1.2 Update released for Drupal core (2.1.2)! drupal 11.1.10 Update released for Drupal core (11.1.10)! drupal 10.5.10 Update released for Drupal core (10.5.10)! drupal 10.4.10 Update released for Drupal core (10.4.10)! drupal 11.2.12 Update released for Drupal core (11.2.12)! drupal 11.3.10 Update released for Drupal core (11.3.10)! drupal 10.6.9 Update released for Drupal core (10.6.9)! drupal 10.6.8 Update released for Drupal core (10.6.8)! drupal 11.3.9 Update released for Drupal core (11.3.9)! drupal 11.3.8 Update released for Drupal core (11.3.8)! drupal 11.3.7 Update released for Drupal core (11.3.7)! drupal 11.2.11 Update released for Drupal core (11.2.11)! drupal 10.6.7 Update released for Drupal core (10.6.7)! drupal 10.5.9 Update released for Drupal core (10.5.9)! cms 2.1.1 Update released for Drupal core (2.1.1)!

composite_reference

321 sites Security covered
View on drupal.org

The Composite Reference module allows users to mark entity reference fields as composite.

Composite reference fields ensure that referenced entities get deleted when the referencing entity is deleted.

The deletion is prevented if the referenced entity is referenced by another entity but typically you should ensure you only use this capability for entities that can be referenced only once.

How to

The module works with both Entity Reference and Entity Reference Revisions field types.

Field configs

For configurable (bundle) fields, edit the field configuration and check the box to mark the reference as composite. The rest is taken care of.

Base fields

For base fields, simply set a custom field setting on the entity reference or entity reference revision field definition, like so:

$fields['my_field'] = BaseFieldDefinition::create('entity_reference')
  ->setLabel(t('My reference'))
  ->setSettings([
    'target_type' => 'node',
    'composite_reference' => TRUE,
  ]);

If the base field gets overridden, this setting will get exported to the third party setting and it will continue to work.

Activity

Total releases
2
First release
Feb 2025
Latest release
6 months ago
Release cadence
276 days
Stability
50% stable

Releases

Version Type Release date
2.4.x-dev Dev Nov 20, 2025
2.4.0 Stable Feb 17, 2025