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(); |