Ich bin auf der Suche nach einem Tutorial zur Authentifizierung mit Zend 2 und Doctrine 2. Insbesondere die Erstellung der Controller und Adapter.Zend 2 + Lehre 2 Auth Adapter
Die offizielle Dokumentation ist zu global nicht genug mir zu helfen.
danke
EDIT:
i "Lehre Entity" verwenden (Namespace User \ Entity;)
Das Entity ist in module.config.php Datei registrieren:
'doctrine' => array(
'driver' => array(
__NAMESPACE__ . '_driver' => array(
'class' => 'Doctrine\ORM\Mapping\Driver\AnnotationDriver',
'cache' => 'array',
'paths' => array(__DIR__ . '/../src/' . __NAMESPACE__ . '/Entity')
),
'orm_default' => array(
'drivers' => array(
__NAMESPACE__ . '\Entity' => __NAMESPACE__ . '_driver'
)
)
),
)
Aber jetzt, wie kann ich meinen identityClass Schlüssel auf meinen Adapter zeigen? Controller:
use Zend\Mvc\Controller\AbstractActionController,
Zend\View\Model\ViewModel,
Zend\Authentication\AuthenticationService,
Doctrine\ORM\EntityManager,
DoctrineModule\Authentication\Adapter\ObjectRepository as DoctrineAdapter,
User\Entity\User,
User\Form\UserForm;
class UserController extends AbstractActionController
{
protected $em;
public function setEntityManager(EntityManager $em)
{
$this->em = $em;
}
public function getEntityManager()
{
if (null === $this->em)
$this->em = $this->getServiceLocator()->get('Doctrine\ORM\EntityManager');
return $this->em;
}
public function getRepository()
{
if (null === $this->em)
$this->em = $this->getEntityManager()->getRepository('User\Entity\User');
return $this->em;
}
public function loginAction()
{
....
????????????
$adapter = new DoctrineAdapter();
$adapter->setIdentityValue($username);
$adapter->setCredentialValue($password);
$auth = new AuthenticationService();
$result=$auth->authenticate($adapter);
????????????
}
}
ich diesen Fehler haben: Rufen Sie auf eine Elementfunktion getRepository() auf einem Nicht-Objekt in ... Lehre \ Lehre-Modul \ src \ DoctrineModule \ Options \ AuthenticationAdapter.php auf Zeile 132 Zeile 123: return $ this-> objectManager-> getRepository ($ this-> identityClass);
Hallo, vielen Dank für die Tipps. Ich versuche DoctrineModule \ Authentication \ Adapter \ ObjectRepository als DoctrineAdapter zu verwenden. aber wenn ich $ result = $ adapter-> authenticate() aufrufen, habe ich diesen Fehler: Aufruf einer Memberfunktion getRepository() auf einem Nicht-Objekt. Wie und wo definiere ich meine identityClass? – beweed
Ihre Identitätsklasse sollte ein Doctrine-Dokument (für ODM) oder Doctrine-Entity (für ORM) sein. Definieren Sie es wie jedes Dokument/jede Entität. (Vergessen Sie nicht, Ihr Dokument/Ihre Entity mit einem Treiberschlüssel in Ihrer 'module.config.php' zu registrieren, wie Sie es für all Ihre anderen Dokumente/Entitäten getan haben). Nachdem Sie Ihre Identitätsklasse erstellt haben, verwenden Sie den Schlüssel "identityClass", um den Adapter darauf zu verweisen. Im obigen Beispiel lautet die Identitätsklasse "Application \ Model \ User", Sie können jedoch festlegen, was Sie wollen. – superdweebie
Ich schätze Ihre Hilfe sehr. Ich bearbeite gerade meinen Beitrag, um mein Problem zu lokalisieren. – beweed