使用 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
}
}
希望你想要这个结果。
我想在我的 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
}
}
希望你想要这个结果。