我目前正在使用Symfony 4和Doctrine MongoDB捆绑包,遵循此链接中的说明:DoctrineMongoDBBundle。因此,我有一个用户文档:
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
类内容扩展控制器
{
/**
* @Route("/content", name="content")
* @param UserRepository $user
* @return Response
*/
public function index(UserRepository $user)
{
$user->findAll();
return new Response();
}
}
所以,在运行内容页面后,我得到了以下错误:
无法自动连线服务“App\Repository\UserRepository”:方法“\uu construct()”的参数“$uow”引用类“Doctrine\ODM\MongoDB\UnitOfWork”,但不存在此类服务。
DocumentRepository构造函数如下所示:
public function __construct(DocumentManager $dm, UnitOfWork $uow, ClassMetadata $classMetadata)
{
parent::__construct($dm, $uow, $classMetadata);
}
确保从自动关联中排除存储库类。示例如下:https://symfony.com/doc/current/service_container/3.3-di-changes.html
如果您希望将存储库类作为服务,您应该使用factory服务来完成。
存储库不应该是服务,但如果您想保持这种方式,只需自动连接DocumentManager
,并从DocumentManager获取uow和classmetdata。
UnitOfWork
和ClassMetadata
不能自动生成
在UserRepository
中执行类似操作,应该可以正常工作。
public function __construct(DocumentManager $dm)
{
$uow = $dm->getUnitOfWork();
$classMetaData = $dm->getClassMetadata(User::class);
parent::__construct($dm, $uow, $classMetaData);
}
我正在将一个项目从Symfony 3升级到Symfony 4(https://github.com/symfony/symfony/blob/master/UPGRADE-4.0.md),我有很多这样的存储库/服务: 当我尝试在浏览器中这样运行项目时: 我得到这个错误: 这是否意味着您必须在services.yaml文件中为“条令\ORM\Mapping\ClassMetadata”创建服务? 由
我在尝试使用JAXB封送时遇到以下异常。 以下是堆栈跟踪: 键入AORAGENT2TTWSREQUEST。JAVA 我参考了下面的链接,仍然不知道到底是什么问题: JAXB非法注释例外
我一直在尝试使用跨dbms数据库的迁移。使用entrust和confide包,我在它们之后添加了迁移,以添加user _ statuses表和users表中对用户状态id的引用;但是当我定义外键时,我得到了这个: 下面是user_ Status和变更迁移。user_status创建: 用户变更:
我目前能够编译一个具有以下import语句的类:
有没有想过为什么使用Dociety的ODM会在同一个查询上返回零结果? 更新#1看起来教义\MongoDB\Query\Builder::near()L363有问题。方法参数忽略第二个值($Y)。因此只传递要执行的第一个值。
ODM 是用于处理无人机图像的开源命令行工具包。ODM 将简单的 2D 图像变成: 分类点云 3D 纹理模型 地理参考的正射校正影像 地理参考的数字高程模型 该应用程序可用于 Windows、Mac 和 Linux,它可以从命令行运行,非常适合高级用户、脚本以及与其他软件集成。 快速开始 运行 ODM 的最简单方法是通过 docker。要安装 docker,请参阅 docs.docker.com。