草庐IT

doctrine

全部标签

php - Doctrine 1.2 hydrate 方法 - 数组到模型对象

我对Doctrine模型hydrate()方法有点问题。我使用此方法从给定数组中合成具体模型的对象,如下所示:$model=newDoctrine\Model\Model;$model->hydrate($model_array);在没有嵌套子模型的情况下混合简单对象时,一切都很完美。现在的问题是我需要水合(使用此方法)具有嵌套对象(其中一些也具有嵌套对象)的对象。如果我使用HYDRATE_RECORD会很好,但是查询中的所有记录都将作为对象返回,这意味着更多的内存消耗。因此,我正在使用HYDRATE_ARRAY并根据需要将该具体数组合成为一个对象。假设我有一个模型A,它有嵌套模型AB

php - Doctrine Entity增加值(下载计数器)

我想增加我的Doctrine实体的值(value)。目前我是这样做的。$file->setDownloadCounter($file->getDownloadCounter()+1);$em=$this->getDoctrine()->getManager();$em->persist($fileVersion);$em->flush();有没有办法在Doctrine中执行这样的事情:UPDATEfileSETdownloadCounter=downloadCounter+1WHEREid=1编辑:上面的Doctrine示例中的问题是加载和刷新之间是其他人可以下载文件的时间,因此计数器

php - 与 Doctrine2 的多态关系

如何使用Doctrine2创建传统的多态关系?我已经阅读了很多建议使用单表继承的答案,但我看不出这对我的情况有何帮助。这是我正在尝试做的事情:我有一些实用实体,例如地址、电子邮件和电话号码。我有一些“可联系”实体,例如客户、雇主、企业。其中每一个都应包含与上述实用程序实体的OneToMany关系。理想情况下,我想创建一个包含这些关系的名为“ContactableEntity”的抽象基类,但我知道不可能将OneToMany关系放入具有原则的映射父类(superclass)中——这很好。但是,我仍然不知道如何在没有大量代码冗余的情况下关联这些。我是否将Address设为STI类型,并使用包

php - symfony2 + doctrine2@postgresql 设置模式

我想在一个新项目中使用symfony2+doctrine2。我遇到了postgresql-schemes的一个小问题。与mysql相比,您可以在postgres(与其他数据库一样)中指定不同的方案。例如,我们的生产数据库有大约200个方案。我必须为我当前的学说连接设置一个架构。我该怎么做?我几个月前在另一个仅使用doctrine2的项目中解决了这个问题。我做了以下事情:$em=Doctrine\ORM\EntityManager::create($connectionOptions,$config);$em->getConnection()->exec('SETSEARCH_PATHT

php - 扩展 Doctrine Entity 以添加业务逻辑

我正在尝试实践良好的设计并扩展Doctrine实体。我的扩展类,基本上是模型,将具有额外的业务逻辑+对实体基本数据的访问。我正在使用Doctrine2.2.1&ZendFramework1.11.4&php5.3.8当我使用DQL时,学说成功返回模型实体。当我使用Doctrinenativefind()函数时,它什么都不返回:(。帮助...它是这样滚动的:Bootstrap.php:$classLoader=new\Doctrine\Common\ClassLoader('Entities',APPLICATION_PATH.'/doctrine');$classLoader->reg

php - 如何过滤 doctrine2 实体中的 setter/getter ?

我有一个具有一对多关联的实体(具有额外字段的多对多):classGame{/**/*@OneToMany(targetEntity="GamePlayer",mappedBy="game",cascade={"persist"})/*@JoinColumn(name="id",referencedColumnName="game_id",onDelete="cascade")*/private$gamePlayer;}该类有所有作者的自动getter:getGamePlayers()我想给它添加一个过滤器,这样它就可以以最有效的方式查询数据库中的相关详细信息:publicfunctio

php - 在 Doctrine2 中使用部分查询和复合键时出现 "No mapped field"

我有两个模型,分别是Person和Tag。一个Person有多个Tag,Tag主键是person_id和tag的组合键(Person$person和$tag在Doctrine2中)。Tag模型中有一个数据字段(BLOB),数据量很大。我正在设置一个不需要该字段数据的查询,因此我想设置一个不检索该字段的查询。我尝试了以下查询:SELECTc,PARTIALt.{tag}FROMContactcLEFTJOINc.tags在这里,我得到了一些预期的错误ThepartialfieldselectionofclassTagmustcontaintheidentifier。没问题,我添加联系人字

php - Doctrine - 存储 ArrayCollection 键

每当我将ArrayCollection与DoctrineORM(2.3,PHP>5.4)一起使用,并将对象值与集合中的键相关联(例如使用set方法时),值得到正确存储在数据库中。但是当我想从实体中检索集合时,键没有被检索到,而是使用数字索引。例如,如果我有以下类:/**@Entity*/classMyEntity{/**@OneToMany(targetEntity="MyOtherEntity",mappedBy="mainEntity")*/private$myArray;publicfunction__construct(){$this->myArray=newArrayColl

php - 将@Embedded/@Embeddable 与 Doctrine 2.5 和唯一约束一起使用

Doctrine2.5allows@Embeddableand@Embeddedannotations-givingdeveloperstheabilitytocreateEntitiesalongsideValueObjects.Ifyouareusingcomposer,asofMay2014,youneedtohave:"minimum-stability":"dev"inyourcomposer.jsontouseit.我有一个Server实体,我正在尝试将IpAddress值对象映射到它。@Embeddable和@Embedded在这里工作得很好。但是,我希望Server实体

php - 我如何使用 Symfony Doctrine :fixtures:load with multiple entity managers?

我设置了一个包含多个实体管理器的新项目,当我尝试加载数据fixture时,我得到一个MappingException,因为控制台尝试为所有内容加载fixture,而不是我指定的实体管理器。这是我的config.yml中的Doctrine部分doctrine:dbal:connections:default:driver:%database_driver%host:%database_host%port:%database_port%dbname:%database_name%user:%database_user%password:%database_password%charset: