gpt4 book ai didi

Symfony 2 : filtering x-to-many relations

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

我有两个实体代表用户( User )和友谊请求( FriendshipRequest )。 User 和 FriendshipRequest 之间存在 oneToMany 关系,因此 Doctrine 创建了一个名为 getFriendshipRequests() 的方法。在用户类中。这没问题,但 FriendshipRequest 有一个名为 status 的属性,所以我希望 User 类可以过滤与其相关的好友请求,以关注他们的状态。我已经阅读了 Doctrine 文档,我发现了这一点:

Natively you can’t filter associations in 2.0 and 2.1. You should use DQL queries to query for the filtered set of entities.



据此,我想我应该创建一个 FriendshipRequest 存储库并创建一个名为“findByStatusAndUser”(或类似的东西)的方法,但我认为这是一个糟糕的解决方案。

我想在 User 实体中有一个方法,比如 getPendingStatusRequests() .这可能吗?如果不是,最好的解决方案是什么?

最佳答案

我认为 FriendshipRequest 存储库中的“getPendingRequestsForUser($user)”方法应该是一个很好的解决方案。在此方法中,您只需要创建一个合适的 DQL。

这是一个很好的解决方案,因为所有的逻辑都应该移到存储库中,使实体尽可能小而干净。

UPD:此外,您可以使用 findBy 方法,如 here 所述,例如:

$pendingRequests = $em->getRepository('MyBundle:FriendshipRequest')->findBy(
array('user' => $user->getId(), 'status' => 1)
);

但对我来说,第一种方法是首选。

关于Symfony 2 : filtering x-to-many relations,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11794163/

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