2012-02-20 16 views
0

私は、zendフレームワークのdoctrine 2エンティティ内にメソッドを作成しようとしています。コードをDRYにしておくだけです。私は、彼らがログインしている場合、ユーザーオブジェクトを取得したい、とFALSE他の賢明:doctrine2エンティティリポジトリ内での認証の承認

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

私は推測し、それがそうであるように名前空間を使用していると仮定します。

Zend_Authを使用している行には、接頭辞として\ - を付けます。 $auth = \Zend_Auth::getInstance();

これは、PHPの名前空間が相対的なためです。したがって、ちょうどZend_Authを使用しようとすると、現在の名前空間にオブジェクトが必要と仮定します。接頭辞として\を付けることにより、ルートからZend_Authが欲しいと言っています。

私はあなた自身に慣れておくことをお勧めします。namespaces manual page

関連する問題