FOSRestBundle如何将表单用于需要关系的CRUD实体?

时间:2015-11-18 22:58:54

标签: symfony symfony-forms fosrestbundle

超级简单的例子:

[Album] 1 --> 0..n [Song] 

这意味着虽然[Album]可以只有[Songs],但每个[Song]都需要相关的[Album]

我使用嵌套资源,所以我的routing.yml看起来像这样:

albums:
  type:rest
  resource: ...

songs:
  type: rest
  parent: albums
  resource: ...
  1. 如何为歌曲创建表单以验证现有相册的存在?
  2. 相关JSON的外观如何?
  3. Symfony 2.7 FOSRest 1.7

1 个答案:

答案 0 :(得分:2)

尝试doctrine:generate:crud(更多细节http://symfony.com/doc/current/bundles/SensioGeneratorBundle/commands/generate_doctrine_crud.html

此命令使用CRUD,表单和视图生成控制器。但是你可以自定义你想要的东西。

相关实体也看起来像数组。例如,您尝试输出歌曲,然后json将如下所示:

[{..., name: "Song1", album:{"id": 1, "name": "Album"}}]

顺便说一句,要使用querybuilder输出,你需要像下面这样的innerJoin关系:

$qb->select('s', 'album')
    ->innerJoin('s.album', 'album')
    ->getQuery()
    ->getArrayResult(); // or ->getResult(\Doctrine\ORM\Query::HYDRATE_ARRAY);