我尝试将主义的mongo存储库注入到控制器中。 在services.yaml文件中,我添加了条目:
App\Account\Repository\MongoAccountRepository:
factory: ["@doctrine_mongodb", getRepository]
arguments:
- App\Account\Domain\Entity\Account
在我的代码中,我想使用隐藏在AccountRepository界面后面的存储库
class MongoAccountRepository extends DocumentRepository implements AccountRepository {}
当我尝试将存储库注入到控制器构造函数中
class DefaultController extends Controller
{
private $accountRepository;
public function __construct(AccountRepository $accountRepository) {
$this->accountRepository = $accountRepository;
}
我收到以下错误:
传递给App \ Account \ UserInterface \ DefaultController :: __ construct()的参数1必须实现接口App \ Account \ Domain \ Repository \ AccountRepository,并提供Doctrine \ ODM \ MongoDB \ DocumentRepository的实例
有人遇到类似的问题吗?
答案 0 :(得分:1)
对于我所有的情况,以下解决方案均有效:
mongo_account_repository:
class: Doctrine\ODM\MongoDB\Repository\DocumentRepository
factory: ['@doctrine_mongodb.odm.default_document_manager', getRepository]
arguments:
- App\Infrastructure\Repository\MongoDB\Document\Keyword