1

カスタムユーザープロバイダーを作成しようとしています。

私は自分UserProviderをサービスとして定義しました:

myvendor.user_provider:
  class: MyVendor\UserBundle\Service\Security\UserProvider

このクラスはDocumentRepository

namespace MyVendor\UserBundle\Service\Security;

use Symfony\Component\Security\Core\User\UserInterface;
use Symfony\Component\Security\Core\User\UserProviderInterface;
use Symfony\Component\Security\Core\Exception\UsernameNotFoundException;
use Symfony\Component\Security\Core\Exception\UnsupportedUserException;
use Doctrine\ODM\MongoDB\DocumentRepository;
use Doctrine\ODM\MongoDB\DocumentNotFoundException;

class UserProvider extends DocumentRepository implements UserProviderInterface {
    //public function loadUserBy...
}

しかし、私はこのエラーを受け取ります:

Catchable Fatal Error: Argument 1 passed to Doctrine\ODM\MongoDB\DocumentRepository::__construct() must be an instance of Doctrine\ODM\MongoDB\DocumentManager, none given, called in /home/www/dev/public/myapp/app/cache/dev/appDevDebugProjectContainer.php on line 258 and defined in /home/www/dev/public/myapp/vendor/doctrine/mongodb-odm/lib/Doctrine/ODM/MongoDB/DocumentRepository.php line 68 

ドキュメントマネージャーも挿入しようとしたため、その時点ではまだ作成されていないようですが、のような独自の依存関係について文句を言いUnitOfWorkます。

私に何ができる?

4

1 に答える 1

2

サービス定義はトリッキーでした

myvendor.user_provider:
    class: MyVendor\UserBundle\Service\Security\UserProvider
    factory_service: doctrine.odm.mongodb
    factory_method:  getRepository
    arguments: [ 'MyVendorUserBundle:User\User' ]
于 2012-10-01T01:43:41.197 に答える