У меня есть некоторые функции, которые изменяют каждый элемент в коллекции сущностей:
foreach ($screen->getBlocks() as $block) {
$block->setSomeField();
}
После этого я пытаюсь сохранить объект в базе данных:
$this->em->persist($screen);
$this->em->flush();
The Screen ::Свойство $ blocks имеет аннотации:
/**
* @ORM\OneToMany(targetEntity="App\Entity\Block", mappedBy="screen", cascade={"remove", "persist"}, orphanRemoval=true)
* @ORM\OrderBy({"position": "ASC"})
* @Groups({"block"})
* @ApiSubresource
* @Assert\Valid
*
* @var Block[]|Collection
*/
private $blocks;
До сброса я вижу, что объекты в коллекции изменяются, но после - туда возвращаются значения, кажется, что entityManager снова извлекает данные из базы данных.Единственное решение, которое мне помогло, это добавить $ this-> em-> clear (); до сброса, но я не могу понять логику ..