php - 具有多对多关系的 Dcotrine QueryBuilder
问题描述
在这个项目中,我想用 Mercure 协议和 Symfony 创建一个聊天,所以我创建了两个实体:可以有很多用户的对话和可以有很多对话的用户实体,我的问题是我不知道如何找到对话由 他 的 用户, 并找到 一个 用户 的 所有 对话.
#../Entity/Conversation.php
class Conversation
{
// ....
/**
* @ORM\ManyToMany(targetEntity=User::class, inversedBy="conversations")
*/
private $users;
}
#../Entity/User.php
class User
{
/**
* @ORM\ManyToMany(targetEntity=Conversation::class, mappedBy="users")
*/
private $conversations;
// ...
}
# Repository/ConversationRepository.php
/**
* @param User[] $users
*/
public function findOneConversationByUsers(array $users): ?Conversation
{
// Every convesation is defined by his users
// The main goal is to find a conversation by his users
$qb = $this->createQueryBuilder('c');
// ...
}
/**
* @return Conversation[]
*/
public function findConversationsByUser(User $user): array
{
// Each user can have many conversations
// Each conversation can have many users
// The main goal is to find all convs by the current user.
qb = $this->createQueryBuilder('c');
// $qb-> ...
}
你能告诉我我可以完成这两种方法吗?
解决方案
推荐阅读
- javascript - 如何从1开始在javascript中初始化let
- r - 在 ggplot2 r 的 x 轴上添加子组标签/顺序元素
- authentication - 在 Elastic Cloud 上保护 Elasticsearch 集群
- rabbitmq - Spring Cloud Bus 网络中断后无法恢复
- arrays - 循环或访问字符串数组
- javascript - HTML表单输入到Javascript数组
- excel - MS Excel 365 中的 FDBK_Date 函数编译错误“找不到方法或数据成员”
- python - 在 Python 中解析 Elasticsearch json 输出
- delphi - Delphi TStreamReader - 如何以共享模式阅读?
- python - 使用 Heroku 问题部署 django,ERR_CONNECTION_REFUSED