gpt4 book ai didi

php - 更新 Doctrine 中的总关系计数器

转载 作者:行者123 更新时间:2023-11-29 18:35:13 25 4
gpt4 key购买 nike

愚蠢的问题,但我找不到任何答案。

我需要执行这样的查询:

$em
->createQueryBuilder()
->update('AppBundle:Contest\Member', 'm')
->innerJoin('m.votes', 'v')
->set('m.total_votes', 'COUNT(v.id)')
->where('m.id = :member')
->setParameter('member', $member->id())
->getQuery()
->execute()
;

或通过DQL

UPDATE
AppBundle:Contest\Member AS m
INNER JOIN
m.votes v
SET
m.total_votes = COUNT(v.id)
WHERE
m.id = :member

Doctrine 断然拒绝执行查询。

我做错了什么?

最佳答案

我找到了解决方案

$total = $em
->getRepository('AppBundle:Contest\Member\Vote')
->createQueryBuilder('v')
->select('COUNT(v.id)')
->where('v.member = :member')
->setParameter('member', $member->getId())
->getDQL()
;

$em->createQueryBuilder()
->update('AppBundle:Contest\Member', 'm')
->set('m.total_votes', '('.$total.')')
->where('m.id = :member')
->setParameter('member', $member->getId())
->getQuery()
->execute()
;

关于php - 更新 Doctrine 中的总关系计数器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45369868/

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