Как объединить два метода сущностей в один - PullRequest
0 голосов
/ 25 января 2020

Основываясь на приложении для обмена личными сообщениями, моя пользовательская сущность в настоящее время имеет два метода для получения сообщений:

Один для получения сообщений, отправленных пользователем

/**
 * @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 равен идентификатору пользователя, а второй - сообщения, где recepteur равен идентификатору пользователя. Оба метода Symfony по умолчанию

Можно ли объединить эти два метода, чтобы все сообщения отправлялись и получались пользователем в одном запросе?
Или мне следует прибегнуть к пользовательскому DQL?

1 Ответ

1 голос
/ 25 января 2020
public function getMerged(): Collection {
   return new ArrayCollection(
       array_merge(this->messagesPrivesEmis->toArray(), $this->messagesPrivesRecus->toArray())
   );
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...