管理FosRest Bundle中的多对多关系

时间:2017-11-26 19:26:18

标签: rest symfony doctrine-orm fosrestbundle

我正在使用带有symfony的FosRest Bundle,我在两个表之间有很多关系。 例如:

class Site
{
    /** ManyToMany **/
    protected $languages;
}

class Language
{
    /** ManyToMany **/
    protected $sites;
}

我以前分别保存在每个表中的记录,但现在我想在我的新表 site_language 中添加它们之间的关系,但我不知道该怎么做。

在SiteController中我有以下方法:

getSitesAction()
getSiteAction()
postSiteAction()
putSiteAction()
patchSiteAction()
deleteSiteAction()

我应该创建一个像postSiteLanguagesAction()这样的新方法吗? 或者修改现有的postSiteAction()?

1 个答案:

答案 0 :(得分:0)

排序答案:可能两者都有点。

这里有两个不同的问题:

  • 改变网站所拥有的语言......不过,我可能只是称之为postLanguagesAction()而不是
  • 添加新网站

实际上还有其他两种方法,但是你忘记了:putSiteAction()patchSiteAction()(TBH,我不确定你为什么同时支持这两种方法)。更新现有站点配置时,还需要能够更新其可用语言集。

  

P.S。
  关于名称,因为你的控制器很可能已被称为#34;网站",我会调用方法postResourceAction()getResourceAction()getCollectionAction()等,因为它是有点难以看到"帖子"和"发布"乍看上去。它还可以制作专业的方法"更明显。