Doctrine DQL从多个表中删除(条令)

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时,我发现了这个(有用的)主题: 但这并不完全是我的情况——有从单个表中

我需要从多个相关表执行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时,我发现了这个(有用的)主题:
但这并不完全是我的情况——有从单个表中删除的情况

是否有一种方法可以覆盖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();