gpt4 book ai didi

doctrine-orm - Doctrine 连接过滤器

转载 作者:行者123 更新时间:2023-12-04 05:15:12 28 4
gpt4 key购买 nike

我知道条件过滤器尚不可用于查询(根据 Doctrine2 手册已知限制部分中的“26.1.4. Applying Filter Rules to any Query”),所以我想问问专家他们首选的解决方案是什么以下问题是:

我的网站有产品对象,每个对象都有很多评论。评论有一个状态字段。我不想在 Doctrine2 做得如此出色的自动关联期间不必要地引入尚未批准的评论。

我当前的解决方案/黑客是使用带有“状态”鉴别器的单表继承(STI),并有一个 ApprovedProductReview 扩展基于“APPROVED”状态的 ProductReview 类

我应该补充一点,我目前只是在打电话
$em->find('Entities\Product', $pid);
获取我的产品,Doctrine2 会自动完成所有关联。我应该通过提供 DQL 查询来实例化产品吗?

我真正想要的是一种基于注释覆盖 Doctrine2 提供的魔法的方法,并且能够简单地使用 DQL 懒惰地获得正确的评论子集。

建议?

最佳答案

您可以使用 WITH DQL 中的语句:

$dql = "SELECT p, r
FROM Entities\Product p
LEFT JOIN p.reviews r WITH r.status = :status
WHERE p.id = :id"

$q = $em->createQuery($dql);
$q->setParameter('id', $id);
$q->setParameter('status', $status);
$product = $q->getSingleResult();

关于doctrine-orm - Doctrine 连接过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5711207/

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