Как сказано в Документе Symfony 4 по Doctrine:
// you can fetch the EntityManager via $this->getDoctrine()
// or you can add an argument to your action: index(EntityManagerInterface $entityManager)
$entityManager = $this->getDoctrine()->getManager();
Таким образом, вы можете просто получить таким образом менеджер сущностей в своем контроллере
Однако вы также можете зарегистрировать Entity Manager каксервис для его использования.
Убедитесь, что для autowire установлено значение true:
# config/services.yaml
services:
_defaults:
autowire: true
и зарегистрируйте его как сервис:
# config/services.yaml
services:
#....
controller_em:
class: App\Controller\Controller
arguments: [ '@doctrine.orm.default_entity_manager' ]
public: true
, чтобы вы моглииспользуйте его так в вашем контроллере:
private $objectManager;
public function __construct(ObjectManager $objectManager)
{
$this->objectManager = $objectManager;
}
Вы также можете использовать этот способ для использования Entity Manager в Voter или Manager.