/ / Zend Auth in Doktrin2 Entity Repository - Zend-Framework, Doktrin

Zend Auth im Doktrin2 Entity Repository - Zend-Framework, Doktrin

Ich versuche eine Methode innerhalb einer Doktrin-2-Entität im Zend-Framework zu erstellen. Es ist nur, um den Code trocken zu halten. Ich möchte das Benutzerobjekt abrufen, wenn sie angemeldet sind, und FALSE anderenfalls:

 public function getCurrentUserId() {
//returns false if not logged in, user object otherwise
$auth = Zend_Auth::getInstance();
$id = $auth->getidentity();
$user = $this->_em->getRepository("EntitiesUser")
->findOneByid($id);
if (is_null($user))
return false;
else
return $user;
}

}

Dies funktioniert innerhalb einer Controller-Aktion, verursacht jedoch den folgenden Fehler:

PHP Fatal error:  DoctrineCommonClassLoader::loadClass(): Failed opening required "/var/www/myswap/application/models/Repositories/Zend_Auth.php"

Warum und wie kann ich das vermeiden?

Antworten:

0 für die Antwort № 1

Ich nehme an, dass Sie Namespaces verwenden, da es so aussieht.

Auf der Linie, wo Sie verwenden Zend_Auth, setze es mit a voran - zB. $auth = Zend_Auth::getInstance();

Der Grund dafür ist, dass Namespaces in PHP relativ sind. Also, wenn Sie versuchen, nur zu verwenden Zend_Auth Es wird davon ausgegangen, dass Sie ein Objekt im aktuellen Namespace möchten. Indem du es mit einem Präfix versiehst, sagst du es dir, du willst es Zend_Auth von der Wurzel.

Ich würde vorschlagen, sich mit der Namespaces Handbuchseite