'Problem connecting entitymanager(doctrine) on laminas framework
please tell me how to get entity manager on laminas framework
Controller:
public function signupAction()
{
$user = new Users();
$user->setUsername('Test');
$user->setEmail('[email protected]');
$user->setNumber('+79168415532');
// this one i have persist() and flush()
}
Solution 1:[1]
To elaborate on @Aleksey Blossom's answer you need to create a factory from which to inject the entity manager.
use Laminas\ServiceManager\Factory\FactoryInterface;
use Interop\Container\ContainerInterface;
use Doctrine\ORM\EntityManager;
use YourModule\Controller\CategoryController;
class CategoryControllerFactory implements FactoryInterface
{
public function __invoke(ContainerInterface $container, $requestedName, ?array $options = null)
{
$entityManger = $container->get(EntityManager::class);
return new CategoryController($entityManger);
}
}
and in your controller
use Laminas\Mvc\Controller\AbstractActionController;
use Doctrine\ORM\EntityManager;
class CategoryController extends AbstractActionController
{
private EntityManager $entityManager;
public function __construct(EntityManager $entityManager)
{
$this->entityManager = $entityManager;
}
public function signupAction()
{
$user = new Users();
$user->setUsername('Test');
$user->setEmail('[email protected]');
$user->setNumber('+79168415532');
$this->entityManager->persist($user);
$this->entityManager->flush();
}
}
As a side note I would also consider placing your business logic into models.
Solution 2:[2]
Create Factory
class CategoryControllerFactory implements FactoryInterface
{
public function __invoke(\Interop\Container\ContainerInterface $container, $requestedName, ?array $options = null)
{
$entityManger = $container->get(\Doctrine\ORM\EntityManager::class);
return new CategoryController($entityManger);
}
}
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | |
| Solution 2 | Aleksey Blossom |
