Doctrine DQL从多个表中删除(条令)
我需要从多个相关表执行DQL delete。 在SQL中是这样的:Doctrine DQL从多个表中删除(条令),doctrine,multiple-tables,Doctrine,Multiple Tables,我需要从多个相关表执行DQL delete。 在SQL中是这样的: DELETE r1,r2 FROM ComRealty_objects r1, com_realty_objects_phones r2 WHERE r1.id IN (10,20) AND r2.id_object IN (10,20) 我需要使用DQL执行此语句,但我在这方面遇到了困难:( 搜索google和stack overflow时,我发现了这个(有用的)主题: 但这并不完全是我的情况——有从单个表中
DELETE r1,r2
FROM ComRealty_objects r1, com_realty_objects_phones r2
WHERE r1.id IN (10,20) AND r2.id_object IN (10,20)
我需要使用DQL执行此语句,但我在这方面遇到了困难:(
搜索google和stack overflow时,我发现了这个(有用的)主题:但这并不完全是我的情况——有从单个表中删除的情况 是否有一种方法可以覆盖DQL解析器行为?或者是否有其他方法可以使用doctrine从多个表中删除记录
注意:如果您使用的是条令行为(条令记录生成器),则首先需要使用
条令核心::initializeModels()
对这些表进行初始化,以对它们执行DQL操作。如果它们相关,则$id将删除这两个表:
->delete()
->from('ComRealtyObjects c, c.ComRealtyObjectsPhones p')
->whereIn('c.id', '?', $ids)
这应该可以完成任务。试试:
$dql = Doctrine_Query::create()
->from('ComRealtyObjects comrealtyobjects')
->from('ComRealtyObjectsPhones phones')
->whereIn("comrealtyobjects.id", $ids)
->whereIn("phones.id_object", $ids);
$result= $dql->execute();
$result->delete();
告诉我进展如何
->delete()
->from('ComRealtyObjects c, c.ComRealtyObjectsPhones p')
->whereIn('c.id', '?', $ids)
$dql = Doctrine_Query::create()
->from('ComRealtyObjects comrealtyobjects')
->from('ComRealtyObjectsPhones phones')
->whereIn("comrealtyobjects.id", $ids)
->whereIn("phones.id_object", $ids);
$result= $dql->execute();
$result->delete();