/**
  * @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);
     }
 }
Example #2
0
 public function testGetEntityData()
 {
     $this->assertEquals($this->fieldData, $this->event->getFieldData());
 }