services:
my_custom_user_manager:
class: UserBundle\Repository\CustomUserManager
arguments: []
수정 된 설정을 (응용 프로그램/설정/config.yml) :
<?php
namespace UserBundle\Repository;
use Doctrine\ORM\EntityRepository;
use FOS\UserBundle\Model\UserManager;
use FOS\UserBundle\Model\UserManagerInterface;
class CustomUserManager extends UserManager implements UserManagerInterface
{
public function loadUserByUsername($username)
{
return $this->createQueryBuilder('u')
->where('u.username = :username OR u.email = :email')
->setParameter('username', $username)
->setParameter('email', $username)
->join('u.roleues','r')
->addSelect('r')
->join('r.etablissement','e')
->addSelect('e')
->getQuery()
->getOneOrNullResult();
}
}
:
fos_user:
service:
user_manager: my_custom_user_manager
그리고 클래스를 생성
는하지만이 오류를 얻을 :
Error: Class UserBundle\Repository\CustomUserManager contains 5 abstract methods and must therefore be declared abstract or implement the remaining methods (FOS\UserBundle\Model\UserManagerInterface::deleteUser, FOS\UserBundle\Model\UserManagerInterface::findUsers, FOS\UserBundle\Model\UserManagerInterface::getClass, ...)
을하지만이 Usermanager 클래스와 UserManagerInterface을 읽을 때, 나는 유사한 주제를 읽을 때, 그들은 아무 문제없이이 클래스를 확장, 어떤 absract 방법을 볼 수 없습니다.
감사합니다. 내 실수를 이해합니다. FOS \ UserBundle \ ** Doctrine ** \ UserManager를 확장해야했습니다. FOS \ UserBundle \ ** 모델 ** \ UserManager가 아닙니다. – freezix