Возможно, это не лучшая идея, но есть простой способ сделать это.
Класс UnitOfWork
в доктрине будет гидрировать любую сущность, которая реализует ObjectManagerAware
, с менеджером сущности и метаданными класса для этой сущности.
Все, что вам нужно сделать, чтобы получить менеджер сущностей в вашей сущности, это реализовать интерфейс, как показано в примере ниже:
use Doctrine\Common\Persistence\Mapping\ClassMetadata;
use Doctrine\Common\Persistence\ObjectManager;
use Doctrine\Common\Persistence\ObjectManagerAware;
/**
* @ORM\Entity
*/
class MyEntity implements ObjectManagerAware
{
public function injectObjectManager(ObjectManager $objectManager, ClassMetadata $classMetadata)
{
$this->em = $objectManager;
}
}
Если вы создаете новую сущность, а не запрашиваете ее из базы данных, вам нужно будет настроить диспетчер сущностей вручную, например, с помощью метода установки.