草庐IT

Doctrine_RawSql

全部标签

php - 如何批量删除 Doctrine 2 中 ManyToMany 关系中的实体?

假设我有以下类(class):classStore{/***@ManyToMany(targetEntity="PaymentMethod")*/protected$paymentMethods;}classPaymentMethod{}当我们删除(或只是禁用,而不是从数据库中实际删除)一个PaymentMethod时,我们希望这个paymentMethod从所有中删除Store::$paymentMethods集合。到目前为止,我们一直在联结表上使用原始SQL查询:DELETEFROMStorePaymentMethodWHEREpaymentMethodId=?有没有办法在Doct

php - Doctrine2 findBy关系对象触发字符串转换错误

假设我在Doctrine2中有两个相互关联的实体,Models\User和Models\Comment。如果我在Doctrine2.0.0中这样做...getRepository('Models\Comment')->findBy(array('user'=>$user,'public'=>true));...我收到一个PHP错误:Severity:NoticeMessage:ObjectofclassModels\UsertostringconversionFilename:DBAL/Connection.phpLineNumber:574这不应该发生,对吧?如果我使用QueryBu

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