Fatal error: Call to a member function get() on a non-object in C:\xampp\htdocs\test\module\Lists\src\Lists\Dao\FactoryEntityManager.php on line 38
Mój kontroler:
namespace Lists\Controller; use Lists\Dao\UserDaoImpl; use Zend\Mvc\Controller\AbstractActionController; use Zend\View\Model\ViewModel; class ListsController extends AbstractActionController { public function indexAction() { $queryTest = new UserDaoImpl(); $query = $queryTest->getUserList(); 'profiles' => $query ); } }
DAO:
namespace Lists\Dao; use Zend\Mvc\Controller\AbstractActionController; class UserDaoImpl extends FactoryEntityManager implements UserDao { public function getUserList() { $sql = $this->getEntityManager()->createQuery('SELECT u FROM Lists\Entity\User u'); $query = $sql->getResult(); return $query; } }
Klasa EntityManager
namespace Lists\Dao; use Doctrine\ORM\EntityManager; use Zend\Mvc\Controller\AbstractActionController; class FactoryEntityManager extends AbstractActionController { /** * @var EntityManager */ protected $entityManager; /** * Sets the EntityManager * * @param EntityManager $em * @access protected * @return PostController */ protected function setEntityManager(EntityManager $em) { $this->entityManager = $em; return $this; } /** * Returns the EntityManager * * Fetches the EntityManager from ServiceLocator if it has not been initiated * and then returns it * * @access protected * @return EntityManager */ protected function getEntityManager() { if (null === $this->entityManager) { $this->setEntityManager($this->getServiceLocator()->get('Doctrine\ORM\EntityManager')); } return $this->entityManager; } }
W sytuacji kiedy metody EntityManager implementuje bezpośrednio w kontrolerze wszystko działa poprawnie. Ale w powyższym przykładzie dosteję błąd:
Fatal error: Call to a member function get() on a non-object in C:\xampp\htdocs\test\module\Lists\src\Lists\Dao\FactoryEntityManager.php on line 38
Jakieś pomysły?