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
Post a Comment