gpt4 book ai didi

Symfony2 使用 QueryBuilder 批量删除

转载 作者:行者123 更新时间:2023-12-02 10:17:41 27 4
gpt4 key购买 nike

我正在尝试执行批量删除查询,但显然它不执行 JOIN 操作。有什么想法吗?

$queryBuilder = $em
->createQueryBuilder()
->delete('Bundle:ClassA', 'a')
->join('a.classB', 'b')
->where('b = :parent')
->setParameter('parent', $parent);

$queryBuilder->getQuery()->execute();

这将返回:

"[Semantical Error] line 0, col 38 near 'b = :parent AND': Error: 'b' is not defined."

最佳答案

DQL 不支持 DELETE 和 UPDATE 中的联接,即使底层数据库(例如 MySQL)支持它。

这是最快的解决方法:

$results = $em
->createQueryBuilder()
->select('Bundle:ClassA', 'a')
->join('a.classB', 'b')
->where('b = :parent')
->setParameter('parent', $parent)
->getQuery()->getResult();

foreach ($results as $result){
$em->remove($result);
}

$em->flush();

关于Symfony2 使用 QueryBuilder 批量删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19895136/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com