Zend Basic Tutorial
Zend Forms
Zend Database
Zend Advanced
Doctrine installation setup link
MainController
(module\Application\src\Controller\Factory\MainControllerFactory.php)namespace Application\Controller\Factory; use Psr\Container\ContainerInterface; use Laminas\ServiceManager\Factory\FactoryInterface; use Application\Controller\MainController; class MainControllerFactory implements FactoryInterface { public function __invoke(ContainerInterface $container, $requestedName, array $options = null) { $entityManager = $container->get('doctrine.entitymanager.orm_default'); return new MainController($entityManager); } }
module.config.php
(module\Application\config\module.config.php)'controllers' => [ 'factories' => [ Controller\MainController::class => Controller\Factory\MainControllerFactory::class, ], ],
namespace Application\Controller; use Laminas\Mvc\Controller\AbstractActionController; use Application\Entity\User; use Doctrine\ORM\EntityManager; class MainController extends AbstractActionController { private $entityManager; // Constructor gets EntityManager from factory public function __construct(EntityManager $entityManager) { $this->entityManager = $entityManager; } public function indexAction() { $users = $this->entityManager->getRepository(User::class)->findAll(); //get all users data return ['users' => $users]; } }
$entityManager
Operation |
Method |
Example |
---|---|---|
Persist (Create) |
persist($entity) |
$entityManager->persist($user); |
Save (Flush) |
flush() |
$entityManager->flush(); |
Find (By ID) |
find(Entity::class, $id) |
$entityManager->find(User::class, 1); |
Find (By Criteria) |
getRepository()->findOneBy([...]) |
$entityManager->getRepository(User::class)->findOneBy(['email' => 'test@example.com']); |
Remove (Delete) |
remove($entity) + flush() |
$entityManager->remove($user); $entityManager->flush(); |
Custom Query |
createQuery('DQL') |
$entityManager->createQuery('SELECT u FROM User u')->getResult(); |