草庐IT

Doctrine_RawSql

全部标签

php - 使用 Doctrine2 管理模式更改的工作流

在开发过程中,我经常运行Doctrine的schema:update命令来将数据库模式同步到我不断变化的实体定义中。一旦我准备好提交一项功能,我想将所有更改汇总到一个migrationclass中。我可以提交给git。问题是,为了运行migrations:diff,我需要将数据库模式回滚到它在开始搞乱schema:update之前的状态。执行schema:drop然后执行migrations:migrate是不好的,因为删除架构不会删除migration_versions表。这意味着在运行现有迁移和创建新迁移之前,我必须进入MySQL并手动删除所有数据库。它有效,但感觉我做错了。有更好

php - 使用 createQueryBuilder 在 doctrine2 中使用 LIMIT ( setMaxResults ) 更新查询不起作用

我有以下代码$qb=$this->createQueryBuilder('cs')->update()->set('cs.is_active',1)->where('cs.reward_coupon=:reward_coupon')->setMaxResults($limit)->setParameter('reward_coupon',$rewardCoupon);$qb->getQuery()->execute();这不会在结果查询中应用LIMIT。 最佳答案 setMaxResult()必须是你最后的Doctrine语句才能正

php - 当连接具有可空关系的表时,Doctrine 返回代理对象

我正在尝试从一个与另一个类连接的类中检索实体。并非所有实体实际上都已加入实体。有点像下面的语句:SELECTa,bFROMAaLEFTJOINBbONa.id=b.aidGROUPBYa.id;或在代码中:$query_builder=$em->getRepository('repository_of_A')->createQueryBuilder('a');$query_builder=$query_builder->leftJoin('a.b',b);$query_builder=$query_builder->groupBy('a.id');$query=$query_build

php - 执行多个查询时的 Doctrine (DBAL) 错误处理

我有一个模式sql文件(有语法错误),包括对设置数据库的多个查询example.sqlCREATETABLEIFNOTEXISTS`example`(`id`int(11)NOTNULLAUTO_INCREMENT,`name`textCOLLATEutf8_unicode_ciNOTNULL,PRIMARYKEY(`id`))ENGINE=InnoDBDEFAULTCHARSET=utf8COLLATE=utf8_unicode_ciAUTO_INCREMENT=1;CREATExxxxxxxxxxTABLEIFNOTEXISTS`example2`(`id`int(11)NOTNU

php - 使用已建立的 PDO 连接与 Doctrine Master/Slave 连接

我在现有软件中采用Doctrine,并希望Doctrine与遗留代码共享相同的PDO连接。我知道你可以像这样告诉Doctrine使用已建立的连接:$em=EntityManager::create(['pdo'=>$pdo],$ormConfiguration);我无法找到主/从连接的正确组合。这是我期望的工作:$em=EntityManager::create(['wrapperClass'=>\Doctrine\DBAL\Connections\MasterSlaveConnection::class,'master'=>['pdo'=>$pdoMaster],'slaves'=>

php - Doctrine postSave、postUpdate 和国际化(检测修改)

我在使用我正在开发的Symfony1.4项目中使用i18n行为的表时遇到了一些小问题。例如,在YAML上定义的以下模型(我有其他遵循相同模式的模型):Subject:actAs:Timestampable:~I18n:fields:[name]columns:name:{type:string(255),notnull:true}relations:Publications:class:PublicationrefClass:PublicationSubjectlocal:subject_idforeign:publication_id我只有国际化的名称字段,但在保存时(在更改表单上的

php - 使用 LEFT JOIN 的 Doctrine 2 UPDATE

SELECT-好的,没有错误$em=$this->get('doctrine.orm.entity_manager');$query=$em->createQuery("SELECTcFROMMyDemoBundle:CategorycLEFTJOINc.projectspWHEREc.isActive=trueANDp.id=1");$result=$query->getResult();更新-异常[语义错误]$query=$em->createQuery("UPDATEMyDemoBundle:CategorycLEFTJOINc.projectspSETc.isActive=fa

php - 如何在 Doctrine2 中使用带有数组 IN 参数的 native 查询

我有这个用doctrine写的原生SQLSELECTCOUNT(DISTINCTt.int_task_type_id)asa_countFROMtbl_xref_people_tasktWHEREt.bit_completed=trueANDt.int_people_id=:peopleIdANDt.int_task_type_idIN(:taskType)我必须用原生SQL编写它,因为int_task_type_id是分层模型类中的鉴别器列。问题是我无法执行以下操作:$query->setParameter(':taskType',implode(',',$taskType));或者

php - Doctrine2 : dynamic entity associations, 多个目标实体被一个字段映射

我有一个名为Event的实体,它有一个“associatedEntity”字段,其中包含Bundle中另一个实体的类名该特定“associatedEntity”实体的字段“targetId”我现在想以某种方式访问​​我的事件实体中的这个目标实体,但我现在确定如何去做。我想使用类似的方式访问Twig模板中的不同目标实体{%ifevent.getClassName()=="User"%}{{ifevent.getUser().getName()}}{%endif%}编辑:明确地说,到目前为止我唯一感兴趣的是如何正确创建关系。在ORM世界之外,您可能会为此使用连接语句。就像我有许多目标实体由

php - 在多对多关系中应用 doctrine sql filter

我的项目中有多对多关系(user_role、grades、user_role_grades)。但我也有一个要求不要从我的数据库中删除任何数据。所以,我在表中添加了一个状态列,连接2个表以创建多对多关系。现在我要上$userRole->getGrades()仅获取那些在联合表(user_role_grades)中没有状态“0”的记录。对于那些,我正在尝试使用doctrinesql过滤器。namespaceBis\MpBundle\Filter;use\Doctrine\ORM\Mapping\ClassMetaData;classUserRoleGradeFilterextends\Do