基于私人消息传递应用程序,我的用户实体当前有两种检索消息的方法:
一个获取用户发送的消息
/**
* @ORM\OneToMany(targetEntity="App\Entity\MessagePrive", mappedBy="emetteur")
*/
private $messagesPrivesEmis;
/**
* @return Collection|MessagePrive[]
*/
public function getMessagesPrivesEmis(): Collection {
return $this->messagesPrivesEmis;
}
和另一个获取从其他用户收到的消息
/**
* @ORM\OneToMany(targetEntity="App\Entity\MessagePrive", mappedBy="recepteur")
*/
private $messagesPrivesRecus;
/**
* @return Collection|MessagePrive[]
*/
public function getMessagesPrivesRecus(): Collection {
return $this->messagesPrivesRecus;
}
第一种方法获取emetteur
等于用户ID的消息,而第二种方法获取recepteur
等于用户ID的消息。两者都是Symfony的默认方法
是否可以“合并”这两种方法,以便在一个查询中获取用户发送和接收的所有消息?
还是应该使用自定义DQL?
答案 0 :(得分:1)
public function getMerged(): Collection {
return new ArrayCollection(
array_merge(this->messagesPrivesEmis->toArray(), $this->messagesPrivesRecus->toArray())
);
}