gpt4 book ai didi

php - 过滤与 Doctrine 2 中的标准对象的关联

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:47:45 25 4
gpt4 key购买 nike

假设我有一个实体Profile,它与一个Account 实体有关联。我想使用 profileCode = 12345 获取配置文件,其中相关的 Account 的电子邮件地址为 my@email。 com。因此,我需要为两个实体指定一个条件。

为此,我创建了一个自定义存储库 Repository\Profile,现在我想知道如何实现它。我知道我可以使用“原始”DQL 查询或使用查询生成器来解决所有这些问题。但是,我觉得它并没有我想要的那么漂亮,因为它非常接近原始 SQL。当然语法有点不同,但从概念上讲,我会更多地考虑 SQL 而不是 OOP。我会经常做这类事情,所以我真的在努力以最好的方式去做。

我已经对 Criteria 对象做了一些阅读(文档很少),只要我在单个实体上过滤,它看起来真的很棒。在对关联实体进行过滤时,我无法找到使用 Criteria 的任何解决方案。

所以基本上我的问题是:有没有什么方法可以使用 Criteria 对象直接从数据库和自定义存储库中过滤多个实体?我真的更喜欢在自定义存储库中对此进行编码,而不是实体本身,正如我看到有些人所做的那样。这可能吗,或者是否有任何好的替代方案,或者纯 DQL 或查询构建器真的是可行的方法吗?

最佳答案

Criteria 只能过滤实体本身的关联,但如果我理解你的用例,你需要过滤 2 层深,所以它不起作用。

您正试图通过按“您的方式”做事来将 Doctrine 塑造成某种不存在的东西。从长远来看,这只会伤害你。解决方案已经存在,使用 DQL 非常好,尤其是在存储库中。

关于php - 过滤与 Doctrine 2 中的标准对象的关联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22671627/

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