を拡張するとき、私は私が(アプリ/設定/ services.yml)サービスを作成し、そのdocumentation に応じFOSUB UserMangerを拡張しようとしている:抽象メソッドの問題FOSUBのUserManager
設定(アプリ/変更services:
my_custom_user_manager:
class: UserBundle\Repository\CustomUserManager
arguments: []
/config.yml設定):
fos_user:
service:
user_manager: my_custom_user_manager
とクラスを作成しました:
<?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();
}
}
は、しかし、私はこのエラーを取得:
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