使用 Symfony FosMessageBundle 或 OrnicarMessageBundle 加载线程参与者的问题

Issue with loading thread participants using Symfony FosMessageBundle or OrnicarMessageBundle

我想在我的 symfony 项目中使用 FosMessageBundle 提供消息功能。

根据文档,我使用这串代码加载所有收件箱线程。

$provider = $this->container->get('fos_message.provider');
$threads = $provider->getInboxThreads();

twig中各线程dump结果为:

Thread {#1300 ▼
  #id: 7
  #createdBy: User {#1129 ▶}
  #messages: PersistentCollection {#1294 ▶}
  #metadata: PersistentCollection {#1273 ▶}
  #participants: null
  #keywords: ""
  #createdAt: DateTime {#1311 ▶}
  #subject: "First msg"
  #isSpam: false
}

我的问题是如何获取每个线程的参与者?

如果我加载单线程当然可以得到参与者。但是使用方法 getInboxThreads() 或 getSentThreads() 属性 participants is null.

如果您有解决我的问题的方法,请告诉我。

您需要像这样迭代线程:

   $provider = $this->container->get('fos_message.provider');
   $threads = $provider->getInboxThreads();
   foreach($threads as $thread)
   {
        foreach ($thread->getParticipants() as $participant)
        {
            // here is your thread participant is $participant
        }
   }

希望你想要这个结果。