Zend framework doctrine2实体存储库中的Zend auth

Zend framework doctrine2实体存储库中的Zend auth,zend-framework,doctrine,Zend Framework,Doctrine,我试图在zend框架中的doctrine 2实体中创建一个方法。这只是为了让代码保持干燥。如果用户已登录,我希望检索用户对象,否则为FALSE: public function getCurrentUserId() { //returns false if not logged in, user object otherwise $auth = Zend_Auth::getInstance(); $id = $auth->getidenti

我试图在zend框架中的doctrine 2实体中创建一个方法。这只是为了让代码保持干燥。如果用户已登录,我希望检索用户对象,否则为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'

为什么,以及如何避免这种情况?

我猜一下,假设您使用的是名称空间,因为它看起来是这样的

在使用
Zend_Auth
的行中,在前面加一个\-eg.
$Auth=\Zend_Auth::getInstance()

原因是PHP中的名称空间是相对的。因此,如果您尝试仅使用
Zend_Auth
,它假定您希望当前名称空间中有一个对象。通过在它前面加一个\,你告诉它你想要根目录下的
Zend\u Auth

我建议你先熟悉一下