/** * @param FieldDataEvent $event */ public function afterMergeField(FieldDataEvent $event) { $fieldData = $event->getFieldData(); $metadata = $fieldData->getMetadata(); if (MergeModes::REPLACE != $fieldData->getMode() || !$metadata->hasDoctrineMetadata() || !$metadata->getDoctrineMetadata()->isAssociation() || !$metadata->isDefinedBySourceEntity() || $metadata->isCollection() || !in_array('remove', (array) $metadata->getDoctrineMetadata()->get('cascade'))) { return; } $entitiesToClear = $this->getEntitiesToClear($fieldData->getEntityData()); foreach ($entitiesToClear as $entityToClear) { $this->accessor->setValue($entityToClear, $metadata, null); } }
public function testGetEntityData() { $this->assertEquals($this->fieldData, $this->event->getFieldData()); }