Вы также можете использовать getReference
для обновления свойства объекта по идентификатору без извлечения состояния базы данных.
https://www.doctrine -project.org / projects / doctrine-orm / en / 2.6 /reference / advanced-configuration.html # reference-proxies
Это создаст простой прокси для работы с сущностью по идентификатору вместо создания new Entity
или явного получения сущности из базы данных с помощью find()
, который затем может быть обновлен путем сброса.
$data = $entityManager->getReference('ATest', $id);
$data->setName('ORM Tested');
$entityManager->flush();
Это особенно полезно для обновления OneToMany
или ManyToMany
ассоциаций объекта.Например: $case->addTest($data);
Обычно плохая практика - вручную устанавливать идентификатор нового объекта, даже если целью является обновление объекта.Вместо этого обычно лучше позволить EntityManager или конструктору Entity установить соответствующие идентификаторы, такие как UUID
.По этой причине Doctrine будет генерировать сущности по умолчанию с идентификатором как частное свойство без метода установки.