FOSUserBundle login z e-mailem (Symfony2)

Mam pytanie dotyczące FOSUserBundle dla Symfony 2.0.x. W dokumentacji można znaleźć sposób na zmianę loginu, aby działał z nazwą użytkownika i adresem e-mail. To działa świetnie! Ale chcę się zalogować, aby pracować tylko z e-mailem. Dodałem więc funkcję w moim CustomUserManager (rozciąga się od oryginału), która zapewnia, że ​​możesz po prostu zalogować się za pomocą swojego e-maila.

<code>namespace Frontend\UserBundle\Model;

use FOS\UserBundle\Entity\UserManager;
use Symfony\Component\Security\Core\Exception\UsernameNotFoundException;

class CustomUserManager extends UserManager
{
    public function loadUserByUsername($email)
    {
        /*$user = $this->findUserByUsernameOrEmail($username);

        if (!$user) {
            throw new UsernameNotFoundException(sprintf('No user with name "%s" was found.', $username));
        }

        return $user;*/

        //Change it to only email (Default calls loadUserByUsername -> we send it to our own loadUserByEmail)
        return $this->loadUserByEmail($email);
    }

    public function loadUserByEmail($email)
    {
        $user = $this->findUserByEmail($email);

        if (!$user) {
            throw new UsernameNotFoundException(sprintf('No user with email "%s" was found.', $email));
        }

        return $user;

    }
}
</code>

Ale teraz mam problem, który muszę kontrolować wartości zapisane w sesji. Zapisuje moją nazwę użytkownika w sesji, a gdy system to sprawdzi, nie będzie wiadomości e-mail (ponieważ sprawdza tylko e-mail).

Moje pytanie brzmi: jak / gdzie można zmienić wartość przechowywaną w zmiennej username.

Dzięki!

questionAnswers(2)

yourAnswerToTheQuestion