草庐IT

Doctrine_RawSql

全部标签

php - Doctrine 合并 : DateTime field always updated

我用现有的Id创建了一个新实体,我想更新相关的数据库记录。Doctrinemerge一直是我最好的friend:识别是否有变化并生成正确的更新查询。$entity=newEntity();$entity->setId(1);$entity->setName('test');$EntityManager->merge($entity);$EntityManager->flush();假设id=1的元素已经存在于数据库中:如果名称与'test'不同,Doctrine生成此查询:UPDATEtableSETname=?WHEREid=?["test","1"]如果我再次运行上面的代码,Doc

php - Doctrine QueryBuilder 删除与连接

我正在尝试使用DoctrineQueryBuilder执行以下SQL查询:DELETEphpFROMproduct_hole_patternphpINNERJOINhole_patternhpONphp.hole_pattern_id=hp.idINNERJOINhole_pattern_typehptONhp.hole_pattern_type_id=hpt.idWHEREphp.product_id=4ANDhpt.slug='universal';我有这个$qb=$this->entityManager->createQueryBuilder();$query=$qb->dele

mysql - 如何使用 Doctrine2 和 Symfony2 查看数据库模式更新的自动生成 SQL 查询?

我在我的Symfony2项目中添加了一些数据库表。然后,我使用了以下命令:phpapp/consoledoctrine:generate:entitiesAcme更新类。然后,我尝试使用以下命令更新MySQL数据库:phpapp/consoledoctrine:schema:update--force但是,我收到以下错误消息[PDOException]SQLSTATE[42000]:Syntaxerrororaccessviolation:1064YouhaveanerrorinyourSQLsyntax;checkthemanualthatcorrespondstoyourMySQL

php - Doctrine DQL 日期作为参数问题

您好,我得到了一个有效的DQL(我从一开始就得到了我的所有事件):DoctrineHelper::getEntityManager()->createQueryBuilder()->select("u.surname,count(u.surname)astotal")->from("User","u")->from("AbstractEvent","e")->from("Attendance","a")->where("u=a.attendee")->andWhere("e=a.event")->andWhere("a.status=1")->andWhere("e.dategroup

mysql - 在 Doctrine2 查询生成器中链接 orX

我必须在添加where子句之后,将OR表达式动态添加到getListQueryBuilder返回的查询构建器中。我找不到任何合适的方法,我刚刚开始学习Doctrine。我如何“链接”给定数量的orX并将它们添加到我的构建器?publicfunctiongetListQueryBuilder($ownerId){$qb=$this->createQueryBuilder('t');return$qb->where($qb->expr()->eq('t.user',':user'))->setParameter('user',$ownerId);}$builder=getListQuery

mysql - Doctrine 2 mysql FIELD函数按顺序排列

我正在尝试在查询的orderby子句中使用MySQLFIELD函数。我假设Doctrine2不支持开箱即用的FIELD函数——是这样吗?如果是这样,我该如何使用它?我是否必须将整个查询转换为native查询?是否有添加此功能的Doctrine2扩展? 最佳答案 杰里米·希克斯,感谢yourextension.我不知道如何将您的功能与教义联系起来,但最终我找到了答案。$doctrineConfig=$this->em->getConfiguration();$doctrineConfig->addCustomStringFunctio

php - 在 Doctrine 2 中指定表类型/存储引擎

那么如何在Doctrine2中指定用于给定实体的存储引擎呢?我正在创建一个需要全文索引的表,而在MySQL中只有MyISAM存储引擎支持全文索引。另一方面:Doctrine2似乎不支持开箱即用的全文索引?也不是全文搜索?对吗? 最佳答案 我晚了两年,但知道这一点很重要,因为出于某种原因没有记录,我们一直在努力实现这一目标,但这是解决方案/***ReportData**@ORM\Table(name="reports_report_data",options={"engine":"MyISAM"})*@ORM\Entity(repos

php - 使用 Doctrine 创建一对多的多态关系

让我先概述一下场景。我有一个Note对象,可以分配给许多不同的对象一本书可以有一个或多个笔记。一张图片可以有一个或多个注释。一个Address可以有一个或多个Note。我设想的数据库应该是这样的:书id|title|pages1|harrypotter|2002|gameofthrones|500图片id|full|thumb2|image.jpg|image-thumb.jpg地址id|street|city1|123street|denver2|centralave|tampa注意id|object_id|object_type|content|date1|1|image|"lov

mysql - 如何使用 Doctrine 截断表格?

我想清空我的MySQL数据库中的一个表。我怎样才能用Doctrine做到这一点? 最佳答案 用Doctrine截断一个表就像这样“简单”:$connection=$entityManager->getConnection();$platform=$connection->getDatabasePlatform();$connection->executeUpdate($platform->getTruncateTableSQL('my_table',true/*whethertocascade*/));但是你要知道,一旦有外键约束,

php - Doctrine 中的两个生成值

我想在我的Doctrine-Entity中实现一个人类可读的ID。我想保留DB-ID以供工作并添加诸如“PRE12-00005”之类的内容(带有前缀和年份,并且每个新年都从0开始)。我尝试添加一个自定义ID生成器,但似乎Doctrine无法在一个实体中使用两个生成的值。/***@varinteger*@ORM\Column(name="id",type="integer")*@ORM\Id*@ORM\GeneratedValue(strategy="IDENTITY")*/protected$id;/***@varstring*@ORM\Column(name="name",type=