Zend auth在doctrine2实体库中

时间:2012-02-20 18:41:05

标签: zend-framework doctrine

我正在尝试在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'

为什么,我该如何避免这种情况?

1 个答案:

答案 0 :(得分:0)

我将猜测并假设您正在使用名称空间,因为它看起来像那样。

在您使用Zend_Auth的行上,前缀为\ - 例如。 $auth = \Zend_Auth::getInstance();

原因是PHP中的命名空间是相对的。因此,如果您尝试仅使用Zend_Auth,则假定您需要当前命名空间中的对象。通过在其前面添加\,您告诉它您希望从根目录Zend_Auth

我建议您熟悉namespaces manual page