Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Prezados, boa tarde!
Estou tentando criar uma Helperview onde preciso fazer uma consulta ao DB, estou sando o Zend2 com Doctrine2 e tentando assim
namespace Application\View\Helper;
use Zend\View\Helper\AbstractHelper;
use Doctrine\ORM\EntityManager;
class HelperUserOn extends AbstractHelper {
/**
*
* @var \Doctrine\ORM\EntityManager
*/
private $em;
public function __construct(EntityManager $em)
{
$this->em = $em;
}
O zend reclama da linha __construct ...
Como posso fazer isso aqui sem o metodo getServiceLocator ?Opá Wlliams,
Na verdade só faltou copiar o resto, ta fechado.
namespace Application\View\Helper;
use Zend\View\Helper\AbstractHelper;
use Doctrine\ORM\EntityManager;
class HelperUserOn extends AbstractHelper {
/**
*
* @var \Doctrine\ORM\EntityManager
*/
private $em;
public function __construct(EntityManager $em){
$this->em = $em;
}
}
ERRO
Fatal error: Uncaught TypeError: Argument 1 passed to Application\View\Helper\HelperUserOn::__construct() must be an instance of Doctrine\ORM\EntityManager, none given, called in /var/www/html/sgt/vendor/zendframework/zendframework/library/Zend/ServiceManager/AbstractPluginManager.php on line 207 and defined
in /var/www/html/sgt/module/Application/src/Application/View/Helper/HelperUserOn.php:27
Stack trace: #0 /var/www/html/sgt/vendor/zendframework/zendframework/library/Zend/ServiceManager/AbstractPluginManager.php(207): Application\View\Helper\HelperUserOn->__construct()
#1 /var/www/html/sgt/vendor/zendframework/zendframework/library/Zend/ServiceManager/ServiceManager.php(642):
Zend\ServiceManager\AbstractPluginManager->createFromInvokable('helperuseron', 'HelperUserOn') #2
/var/www/html/sgt/vendor/zendframework/zendframework/library/Zend/ServiceManager/ServiceManager.php(598):
Zend\ServiceManager\ServiceManager->doCreate('HelperUserOn', 'helperuseron') #3
/var/www/html/sgt/vendor/zendframework/zendframework/library/Zend in
/var/www/html/sgt/module/Application/src/Application/View/Helper/HelperUserOn.php on line 27
Quando usava o Symfony, era obrigado a declarar em services.yml, quais argumentos uma classe receberia no construtor, já no zf injetava via ServiceLocatorInterface, adeus pra esses dois, pois o Laravel facilitou tudo isso, deixando menos engessado.
Mas tenta assim, é so um método a mais.
public function __construct(ServiceLocatorInterface $service)
{
$this->em = $service->getServiceLocator()->get('Doctrine\ORM\EntityManager');
}
Não falta fechar o scopo do construtor não?
[...]
{
[...]