我正在尝试在zend框架中的doctrine 2实体中创建一个方法。只是保持代码DRY。我希望在用户登录时检索用户对象,而在其他方面则为FALSE:
public function getCurrentUserId() {
//returns false if not logged in, user object otherwise
$auth = Zend_Auth::getInstance();
$id = $auth->getidentity();
$user = $this->_em->getRepository('Entities\User')
->findOneByid($id);
if (is_null($user))
return false;
else
return $user;
}
}
这在控制器操作中工作正常,但在此处导致以下错误:
PHP Fatal error: Doctrine\Common\ClassLoader::loadClass(): Failed opening required '/var/www/myswap/application/models/Repositories/Zend_Auth.php'
为什么,我该如何避免这种情况?
答案 0 :(得分:0)
我将猜测并假设您正在使用名称空间,因为它看起来像那样。
在您使用Zend_Auth
的行上,前缀为\ - 例如。 $auth = \Zend_Auth::getInstance();
原因是PHP中的命名空间是相对的。因此,如果您尝试仅使用Zend_Auth
,则假定您需要当前命名空间中的对象。通过在其前面添加\,您告诉它您希望从根目录Zend_Auth
。
我建议您熟悉namespaces manual page