symfony2 login mit Benutzername oder E-Mail

Ich bin mit dem standard-Authentifizierungs-Mechanismus von Symfony2 und ich soll der Benutzer entweder seinen Benutzernamen oder E-Mail anmelden, aber ich kann nicht herausfinden, warum es nicht funktioniert. Getestet hab ich die repository-Klasse und es funktioniert wie erwartet. Ich habe folgte diesem how-to.

Hier ist meine user-provider-Klasse:

<?php

namespace My\UserBundle\Entity;

use Doctrine\ORM\EntityRepository ,
Symfony\Component\Security\Core\User\UserProviderInterface ,
Symfony\Component\Security\Core\User\UserInterface;

/**
* UserRepository
*
* This class was generated by the Doctrine ORM. Add your own custom
* repository methods below.
*/
class UserRepository extends EntityRepository implements UserProviderInterface 
{
    function loadUserByUsername($username)
    {

        $qb = $this->createQueryBuilder('u') ;
        return 
        $qb->select('u')
        ->where(
            $qb->expr()->orx(
                $qb->expr()->like('u.username' ,':username') ,
                $qb->expr()->like('u.email' ,':username')
            )
        )
        //->andWhere($qb->expr()->eq('u.enabled' ,'true') )
        ->setParameters(array('username' =>$username ) )        
        ->getQuery()
        ->getResult() ;                  
    }

    function refreshUser(UserInterface $user)
    {
        return $this->loadUserByUsername($user->getUsername() );
    }

    function supportsClass($class)
    {
        return $class === 'My\UserBundle\Entity\User';
    }

}
  • Was meinst du mit "es funktioniert nicht"? Ausführlicher bitte.
  • Bitte bewegen Sie Ihre Lösung um das problem aus der Frage eine Antwort und akzeptieren es.
  • Hallo Jungs ich kann nicht akzeptieren, meine Antwort 😛 bis morgen
  • FFR, ich fand, dass dies ein großer Führer: github.com/FriendsOfSymfony/FOSUserBundle/blob/1.2.0/Resources/...
InformationsquelleAutor kosaidpo | 2011-11-30
Schreibe einen Kommentar