php - How can my DAO class see my doctrine model? -


i have decided move dao operations controller class dao class (was used on java).

anyhow, when try run dql, doctrine complaining can't see model/entity. thought declaring @ top of dao class prevent this. not.

can please help? thanks

my dao class

<?php  namespace directory\dao;  use directory\model\directorymodel;  use doctrine\orm\querybuilder,     doctrine\orm\query\expr\andx;  class directorydao {     /**      * @var doctrine\orm\entitymanager      */     protected $entitymanager;      public function setentitymanager(entitymanager $entitymanager) {         $this->entitymanager = $entitymanager;     }     public function getentitymanager() {         if (null === $this->entitymanager) {             $this->entitymanager = $this->getservicelocator()->get('doctrine\orm\entitymanager');         }         return $this->entitymanager;     }      public function searchstaffdirectory(querybuilder $querybuilder, directorymodel $directory) {         //$querybuilder = $this->getentitymanager()->createquerybuilder();         $conditions = new andx;          $querybuilder                 ->select('directory')                 ->from('directorymodel', 'directory');         if (strlen($directory->surnamesearch)) {              $conditions->add($querybuilder->expr()->like('directory.surnamesearch', $directory->surnamesearch));         }         if (strlen($directory->surnamesoundssearch)) {              $conditions->add($querybuilder->expr()->like('directory.surnamesoundssearch', $directory->surnamesoundssearch));         }         if (strlen($directory->firstnamesearch)) {              $conditions->add($querybuilder->expr()->like('directory.firsnamesearch', $directory->firstnamesearch));         }         if (strlen($directory->telephonenumber)) {              $conditions->add($querybuilder->expr()->like('directory.telephonenumber', $directory->telephonenumber));         }         if (strlen($directory->departmentsearch)) {              $conditions->add($querybuilder->expr()->like('directory.departmentsearch', $directory->departmentsearch));         }         if (strlen($directory->rolesearch)) {              $conditions->add($querybuilder->expr()->like('directory.rolesearch', $directory->rolesearch));         }         if ($conditions->count()) {                 $querybuilder->andwhere($conditions);         }         $querybuilder                 ->orderby('upper(directory.surname)')                 ->addorderby('upper(directory.firstname)');          $query = $querybuilder->getquery();         $result = $query->getresult();           var_dump($querybuilder->getdql());     } } 

error message stack trace:

file:      d:\work\eclipse\htdocs\directory\vendor\doctrine\orm\lib\doctrine\orm\query\queryexception.php:49  message:      [semantical error] line 0, col 22 near 'directorymodel': error: class 'directorymodel' not defined.  stack trace:  #0 d:\work\eclipse\htdocs\directory\vendor\doctrine\orm\lib\doctrine\orm\query\parser.php(429): doctrine\orm\query\queryexception::semanticalerror('line 0, col 22 ...', object(doctrine\orm\query\queryexception)) #1 d:\work\eclipse\htdocs\directory\vendor\doctrine\orm\lib\doctrine\orm\query\parser.php(854): doctrine\orm\query\parser->semanticalerror('class 'director...', array) #2 d:\work\eclipse\htdocs\directory\vendor\doctrine\orm\lib\doctrine\orm\query\parser.php(1529): doctrine\orm\query\parser->abstractschemaname() #3 d:\work\eclipse\htdocs\directory\vendor\doctrine\orm\lib\doctrine\orm\query\parser.php(1426): doctrine\orm\query\parser->rangevariabledeclaration() #4 d:\work\eclipse\htdocs\directory\vendor\doctrine\orm\lib\doctrine\orm\query\parser.php(1168): doctrine\orm\query\parser->identificationvariabledeclaration() #5 d:\work\eclipse\htdocs\directory\vendor\doctrine\orm\lib\doctrine\orm\query\parser.php(757): doctrine\orm\query\parser->fromclause() #6 d:\work\eclipse\htdocs\directory\vendor\doctrine\orm\lib\doctrine\orm\query\parser.php(726): doctrine\orm\query\parser->selectstatement() #7 d:\work\eclipse\htdocs\directory\vendor\doctrine\orm\lib\doctrine\orm\query\parser.php(229): doctrine\orm\query\parser->querylanguage() #8 d:\work\eclipse\htdocs\directory\vendor\doctrine\orm\lib\doctrine\orm\query\parser.php(304): doctrine\orm\query\parser->getast() #9 d:\work\eclipse\htdocs\directory\vendor\doctrine\orm\lib\doctrine\orm\query.php(233): doctrine\orm\query\parser->parse() #10 d:\work\eclipse\htdocs\directory\vendor\doctrine\orm\lib\doctrine\orm\query.php(245): doctrine\orm\query->_parse() #11 d:\work\eclipse\htdocs\directory\vendor\doctrine\orm\lib\doctrine\orm\abstractquery.php(737): doctrine\orm\query->_doexecute() #12 d:\work\eclipse\htdocs\directory\vendor\doctrine\orm\lib\doctrine\orm\abstractquery.php(538): doctrine\orm\abstractquery->execute(null, 1) #13 d:\work\eclipse\htdocs\directory\module\directory\src\directory\dao\directorydao.php(59): doctrine\orm\abstractquery->getresult() #14 d:\work\eclipse\htdocs\directory\module\directory\src\directory\controller\directorycontroller.php(57): directory\dao\directorydao->searchstaffdirectory(object(doctrine\orm\querybuilder), object(directory\model\directorymodel)) #15 d:\work\eclipse\htdocs\directory\vendor\zendframework\zendframework\library\zend\mvc\controller\abstractactioncontroller.php(83): directory\controller\directorycontroller->searchaction() #16 [internal function]: zend\mvc\controller\abstractactioncontroller->ondispatch(object(zend\mvc\mvcevent)) #17 d:\work\eclipse\htdocs\directory\vendor\zendframework\zendframework\library\zend\eventmanager\eventmanager.php(460): call_user_func(array, object(zend\mvc\mvcevent)) #18 d:\work\eclipse\htdocs\directory\vendor\zendframework\zendframework\library\zend\eventmanager\eventmanager.php(204): zend\eventmanager\eventmanager->triggerlisteners('dispatch', object(zend\mvc\mvcevent), object(closure)) #19 d:\work\eclipse\htdocs\directory\vendor\zendframework\zendframework\library\zend\mvc\controller\abstractcontroller.php(117): zend\eventmanager\eventmanager->trigger('dispatch', object(zend\mvc\mvcevent), object(closure)) #20 d:\work\eclipse\htdocs\directory\vendor\zendframework\zendframework\library\zend\mvc\dispatchlistener.php(114): zend\mvc\controller\abstractcontroller->dispatch(object(zend\http\phpenvironment\request), object(zend\http\phpenvironment\response)) #21 [internal function]: zend\mvc\dispatchlistener->ondispatch(object(zend\mvc\mvcevent)) #22 d:\work\eclipse\htdocs\directory\vendor\zendframework\zendframework\library\zend\eventmanager\eventmanager.php(460): call_user_func(array, object(zend\mvc\mvcevent)) #23 d:\work\eclipse\htdocs\directory\vendor\zendframework\zendframework\library\zend\eventmanager\eventmanager.php(204): zend\eventmanager\eventmanager->triggerlisteners('dispatch', object(zend\mvc\mvcevent), object(closure)) #24 d:\work\eclipse\htdocs\directory\vendor\zendframework\zendframework\library\zend\mvc\application.php(294): zend\eventmanager\eventmanager->trigger('dispatch', object(zend\mvc\mvcevent), object(closure)) #25 d:\work\eclipse\htdocs\directory\public\index.php(12): zend\mvc\application->run() #26 {main} 

   $querybuilder                 ->select('directory')                 ->from('directorymodel', 'directory'); 

i'm pretty sure need type entire classname namespace

   $querybuilder                 ->select('directory')                 ->from('directory\model\directorymodel', 'directory'); 

provided model managed orm of course.


Comments