Как обратиться к EntityManager из Entity? (Zend2+Doctrine2)?
Приветствую!
Решил бизнес-логику перенести в Entity.
Но непонятно как изнутри Entity обращаться к EntityManager.
Пример в контроллере:
$em = $this->getServiceLocator()->get('Doctrine\ORM\EntityManager');
$data = $form->getData();
$user = new User();
$user->setUsername($data['username']);
$user->setNotifyEmail($data['username']);
$user->setPassword($data['password']);
$em->persist($user);
$em->flush();
Это создание юзера. Хотелось бы перенести в Entity в функцию createUser. Но никак не могу понять, как там обратиться к EntityManager, так как $this->getServiceLocator()->get('Doctrine\ORM\EntityManager'); не работает.
Заранее благодарен за помощь!
entity не должна содержать бизнес логики, это всего лишь отображение предметной области. Собственно по этому она не должна иметь доступа к entity manager или хоть как-то знать о том, как она храниться и обрабатывается. Бизнес логика должна храниться в сервисном слое.
У вас должен быть сервис userManager в котором и должен быть метод createUser.