草庐IT

doctrine-odm

全部标签

php - Zend Framework - Doctrine 2 集成 : where to store the EntityManager?

我正在整合ZendFramework和Doctrine2。问题是,在我的Controller和View中,需要访问模型。我可以通过EntityManager的单个实例完成所有这些工作。我在哪里存储这个实例?Zend_Registry?这就是它现在的位置,它可以从任何地方访问,但不是很实用:$em=Zend_Registry::get('EntityManager');作为Controller和View属性?这可以作为$this->em访问,我喜欢这个创建一个将返回实例的工厂类?$em=My\EntityManager\Factory::getInstance();。封装性好,但打字时间

php - 使用 Doctrine 在 Symfony 2 中访问一对多关系时出错

我有一个简单的一对多关系,当我尝试遍历集合时出错。来自“一个”User.php/***@ORM\OneToMany(targetEntity="UserMeasurement",mappedBy="measurements")*/protected$measurements;以及对应的“多”UserMeasurement.php:/***@ORM\ManyToOne(targetEntity="User",inversedBy="measurements",cascade={"persist"})*@ORM\JoinColumn(name="user_id",referencedCol

php - 如何强制 Doctrine 更新数组类型字段?

我有一个带有数组类型字段的Doctrine实体:/***@ORM\Table()*/classMyEntity{(...)/***@vararray$items**@ORM\Column(type="array")*/private$items;/***@paramSomeItem$item*/publicfunctionaddItem(SomeItem$item){$this->items[]=$item;}(...)}如果我向数组添加元素,此代码可以正常工作:$myEntityObject->addItems(newSomeItem());$EntityManager->persi

php - 交响乐 2 : How to avoid the sessions table being dropped by doctrine migrations?

我是迁移的新手,我正在努力坚持使用自动生成的迁移:$phpapp/consoledoctrine:migrations:diff$phpapp/consoledoctrine:migrations:migrate问题是这会删除我的session表。我该怎么做才能避免这种情况? 最佳答案 另一种选择是简单地告诉Doctrine忽略该表。您可以使用schema_filter选项,如thisSOpost中所述。.因此,如果您的表名为sessions,请将以下内容添加到config.yml(Symfonydoctrine.yaml(Symf

mongodb - 如何使用 JMSSerializerBundle 反序列化 Doctrine 对象?

我正在使用Doctrine-ODM,我正在尝试(反)序列化Symfony中的文档对象。序列化似乎有效,但是当我尝试反序列化时出现以下错误:YoumustdefineatypeforMy\Bundle\Repository\Item::$id.我尝试用这个调用反序列化:$object=$serializer->deserialize($serializedItem,'My\Bundle\Repository\Item','json');我的文档有一些嵌入式文档,但它们在序列化字符串中似乎没问题。它缺少有关文档类型的信息。这里是输出的简化示例:{id:"itemID",-embededDo

mongodb - Doctrine2 ODM - 对象(或嵌入式文档)作为_id

我有一个进程运行一个增量映射缩减到一个集合,我在这个集合中查看不同时间段的指标-按id(s)和日期分组。所以我的输出集合本质上有一个复合ID来处理分组。{"_id":{"site":67,"dt":ISODate("2012-07-03T00:00:00Z")},"value":{//Metricshere}}我希望能够使用ODM在我的Symfony2应用程序中从这个集合中获取结果-但是_id字段有问题。我想我可以将它指定为@Id和@embedOne:/***@MongoDB\Id*@MongoDB\EmbedOne(targetDocument="reportId")*/protec

php - 无法在 doctrine mongo 查询中增加值

查看示例:http://docs.doctrine-project.org/projects/doctrine-mongodb-odm/en/latest/reference/query-builder-api.html我无法进行简单的增量。那就是“选票”的值(value)永远不会改变。我的文档ID($postID)是正确的,我可以获取该文档。只是无法增加。为什么Mongo的文档如此乱七八糟??$postID="5121d0ad253b4af1d8000001";$dm=$this->get('doctrine.odm.mongodb.document_manager');$post=

mongodb - 在 symfony2 中使用 doctrine 扩展在 doctrine2 odm 和 orm 之间共享对象

在我的项目中,我需要在orm和odm之间共享对象。我有一个实体“变体”和一个文档“跟踪”。一种变体可以容纳许多跟踪事件。我试图通过使用symfony2.3的stofdoctrineextensionbundle的学说扩展引用来解决它,但无论我做什么都行不通。也许你们中有人有想法。跟踪文档:(注意$variation)namespaceAnchorbrands\Bundle\LandingpageBundle\Document;useAnchorbrands\Bundle\LandingpageBundle\AnchorbrandsLandingpageBundle;useGedmo\M

mongodb - ODM 注释 : What is "strategy" attribute?

@EmbedOne注解中的strategy属性是什么?它的值有什么区别?设置,pushAll我在有关ODM中注释的引用文献中找不到任何好的解释,例如AnnotationsReference,...是否有关于注释的完整引用、备忘单或幻灯片? 最佳答案 这可能是文档中的复制/粘贴错误,应将其删除。set和pushAll策略仅适用于集合(例如EmbedMany、ReferenceMany),并确定将使用哪些更新操作将更改持久保存回MongoDB。StorageStrategies中对它们进行了更详细的描述。页面(除了一些其他策略)。

mongodb - ArrayCollection 中的命名集合键

我正在寻找一种为ODMArrayCollection关联数组键的方法。实体具有以下映射:/***$fields**Theentitiesfields**@ODM\ReferenceMany(targetDocument="JobboardEntity\Entity\EntityField",sort={"name"="asc"},cascade={"all"})*@var\Doctrine\Common\Collections\ArrayCollection*/protected$fields;/***addField**Addasinglefieldtothefieldcollect