Symfony2 OneToMany relation



与我以前的帖子有关:

symfony2 onetomany关系

我想将此功能添加到我的InfoAction();谁列出了所有广告。

    public function infoAction()
{
    $listAdverts = $this->getDoctrine()
        ->getManager()
        ->getRepository('SocietyPerfclientBundle:Advert')
        ->getAdverts()
    ;
    return $this->render('SocietyPerfclientBundle:Default:info.html.twig', array(
        'listAdverts' => $listAdverts,
    ));
}

我在这里必须做的才能访问:

{% for reader in advert.readers %} <i>Seen by : {{ reader.username }}</i> {% endfor %}

首先,关于您的第一个链接(从现在开始,您应该在一个帖子中发布所有问题/问题,而不是创建多个链接,并且如果您有东西要添加/删除,您可以编辑您的帖子),您无法正确设置关系:

Advert类中,您缺少一些基本方法。为此,运行

$ php app/console doctrine:generate:entities SocietyPerfclientBundle:Advert

让学说为您生成缺失的方法。AdvertReader实体相同。

最后,您必须具有Advert实体中$readers字段的实例化。类似:

$this->readers = new DoctrineCommonCollectionsArrayCollection();

以及这些方法:addReader(AdvertReader $reader)removeReader(AdvertReader $reader)getReaders()

AdvertReader实体中,您只需要具有setAdvert(Advert $advers)getAdvert()

尝试一下,让我们知道是否有效。

您将包含您的广告数据的模板$ litchadvert提供给您。为了在视图中显示它,您必须使用它,而不是直接使用实体的名称

{% for reader in listAdverts.readers %}
    <i>Seen by : {{ reader.username }}</i>
 {% endfor %}

修复控制器

$listAdverts = $this->getDoctrine()
        ->getManager()
        ->getRepository('SocietyPerfclientBundle:Advert')
        ->findAll()
    ;

相关内容

  • 没有找到相关文章

最新更新