В настоящее время я использую Symfony 4 с Doctrine MongoDB Bundle, следуя инструкции по этой ссылке: DoctrineMongoDBBundle .Итак, у меня есть UserDocument:
src / Document / UserDocument.php
/** @MongoDB\Document(collection="user", repositoryClass="App\Repository\UserRepository") */
class UserDocument
{
/**
* @MongoDB\Id
* @var ObjectId
*/
private $id;
/**
* @MongoDB\Field(type="string", name="first_name")
* @var string
*/
private $firstName;
/**
* @MongoDB\Field(type="string", name="middle_name")
* @var string
*/
private $middleName;
/**
* @MongoDB\Field(type="string", name="last_name")
* @var string
*/
private $lastName;
}
src / Repository / UserRepository.php
use Doctrine\ODM\MongoDB\DocumentRepository;
class UserRepository extends DocumentRepository
{
}
src / Controller / Content.php
Класс Content расширяет контроллер
{
/**
* @Route("/content", name="content")
* @param UserRepository $user
* @return Response
*/
public function index(UserRepository $user)
{
$user->findAll();
return new Response();
}
}
Итак, после запуска страницы контента, я получилследующая ошибка:
Невозможно автоматически подключить службу "App \ Repository \ UserRepository": аргумент "$ uow" метода "__construct ()" ссылается на класс "Doctrine \ ODM \ MongoDB \ UnitOfWork", но такой службы нетсуществует.
Конструктор DocumentRepository выглядит следующим образом:
public function __construct(DocumentManager $dm, UnitOfWork $uow, ClassMetadata $classMetadata)
{
parent::__construct($dm, $uow, $classMetadata);
}