草庐IT

Doctrine_RawSql

全部标签

php - 对我的模型层方法的反馈 Symfony 2 模型层 + Doctrine

请就以下创建模型层的方法提供反馈,该模型层由使用Doctrine进行数据访问的业务规则组成。我目前的方法基于模型是一个ContainerAware类/对象的概念,所有非库、特定于业务的域逻辑都在其中。我发现我必须锤炼框架才能以这种方式做事,这就是为什么我的一部分大脑质疑我的方法。我目前正在使用Symfony2,它与所有现代PHPMVC框架一样,使用像Doctrine2这样的ORM层,并且不可避免地将其视为模型层。我猜ZF2的情况会类似,所以尽管我的示例是用SF2编写的,但请将其视为与框架无关的问题。具体示例作为具体示例,请考虑以下场景:消息要求作为用户,我可以创建属于我的消息。作为用户

php - Doctrine 可指责的扩展 'on change' 不起作用

我在使用stofDoctrine扩展的symfony2.6.3。TimeStampable和SoftDeletable工作得很好。Blameable的“创建时”和“更新时”也运行良好:/***@varUser$createdBy**@Gedmo\Blameable(on="create")*@ORM\ManyToOne(targetEntity="my\TestBundle\Entity\User")*@ORM\JoinColumn(name="createdBy",referencedColumnName="id")*/protected$createdBy;/***@varUser

php - symfony2 Doctrine - 将 child 添加到 self 相关的实体

我有一个与自身相关的实体。该实体具有字段:parent和children。classA{//.../***@varA*@ORM\ManyToOne(targetEntity="A",inversedBy="children")*@ORM\JoinColumn(name="parent_id",referencedColumnName="id",nullable=true,onDelete="CASCADE")*/protected$parent;/***@varA[]*@ORM\OneToMany(targetEntity="A",mappedBy="parent",cascade={

php - 具有模块化结构的 Zend Framework + Doctrine 2

我将ZendFramework与我的应用程序模块一起使用,我有兴趣以相同的方式集成Doctrine2:一个模块包含:控制者模特观点助手Doctrine2的问题是它需要一个实体目录和一个代理目录。我希望实体目录成为我的模块化结构中的模型目录,但根据我的研究,我还没有找到解决方案。目前,使用默认模块,元数据实现如下所示:$config->setMetadataDriverImpl($config->newDefaultAnnotationDriver(APPLICATION_PATH.'/modules/default/models'));如果我想添加一个新模块,比如说“cms”,我无法用

php - 为什么 Doctrine 使用 WHERE IN 而不是 LIMIT?

为什么Doctrine(1.2)使用WHEREIN而不是LIMIT?这段代码:Doctrine_Query::create()->from('Tablet')->limit(10)->getSqlQuery();返回这样的东西:SELECTt.id_tableASt__id_tableFROMtableAStWHEREt__id_tableIN(1,2,3,4,10,12,18,20,21,25);取而代之的是:SELECTt.id_tableASt__id_tableFROMtableAStLIMIT10;此行为对于任何LIMIT值都是相同的。这会为高LIMIT值生成非常长的查询。额

php - Symfony2 和 Doctrine : how to fetch two different object for the same id?

我有这种情况:对象A对其他对象B、C、D有一些引用对象B对其他对象A、F、G有一些引用对象C对其他对象A有一些引用,...等等。在我的代码中,出于tmp的原因,我需要制作一个对象(比如A)的“副本”(不,我不能使用不同的结构,我需要一个对象的副本)。如果我使用clone,显然,我克隆了我的对象,但与他相关的对象没有被克隆。我完全知道我可以覆盖魔术方法__clone()以便分配给-从对象的角度-B、C、D作为对象本身的克隆,但我有这么多对象(出于Doctrine的目的,它们中的许多都包含在ArrayCollection中)并且我宁愿避免重写每个对象的克隆函数。或者,我认为我可以通过这种方

php - Doctrine onFlush 事件监听器服务的 Symfony 循环引用异常

我已经为DoctrineonFlush事件监听器创建了一个服务。在这个监听器中,我想引用我在另一个服务中的一个常用函数来检查实体的快捷路径。other服务使用实体管理器来执行此操作,因此该other服务的服务定义将原则实体管理器作为构造函数参数注入(inject)。但是,如果我在我的主要onFlush事件监听器中包含该other服务,我会收到有关循环引用的严重错误。我可以让这个entity_helper服务接受集合函数setEntityManager($entityManager)中的实体管理器。但这意味着每当我在其他任何地方使用此entity_helper服务时,我都必须始终传入En

php - 我究竟如何在 Symfony2/Doctrine 中创建自定义 EntityManager?

Symfony/Doctrine的新人。所以请指导我。要求:创建一个自定义的EntityManager,它将覆盖一些方法,如删除(而不是删除,我想执行更新并修改我的类中的isValid之类的参数,以便永远不会删除记录)和查找(找到一个非零isValid的记录)等并使用它代替Doctrine的EntityManager。我开始阅读这个线程:IsthereawaytospecifyDoctrine2EntitymanagerimplementationclassinSymfony2?并发现user2563451的答案不是那么简单。当他谈到不遵循某些方法时我迷路了(同样没有要修改的文件的位置

php - 如何测试 Doctrine Migrations?

我正在从事的项目在开发环境中没有生产数据库的副本。有时我们会遇到数据库迁移问题-它们会传递开发数据库但在生产/测试中会失败。这通常是因为开发环境数据是从使用最新实体的Fixtures加载的-正确填充所有表格。是否有任何简单的方法来确保DoctrineMigration(s)将在生产中通过?您是否有/知道任何方法来编写自动测试以确保数据能够正确迁移,而无需下载生产/测试数据库并手动运行迁移?我想避免将生产/测试数据库下载到开发机器,这样我就可以检查迁移,因为数据库包含私有(private)数据并且它可能非常大。 最佳答案 首先,您需要

php - Doctrine 2 leftJoin, with, manytomany 关系,返回的行数错误

我在Doctrine2上遇到了问题,并且在我试图开始工作的maytomany关系上有一个leftjoin。这可能是我的查询生成器,但我似乎无法弄明白。我有一个这样的连接表:----------------------------------|user_id|attraction_id|----------------------------------|41||42||43|----------------------------------对于两个模型,User和Attraction,其中User是关系的所有者。当我执行这个查询时:$attractions=$CI->em->crea