FOSRestBundle父/子资源错误:每个父控制器必须具有`get {SINGULAR} Action($ id)`方法

时间:2015-10-22 16:06:06

标签: php symfony fosrestbundle

this gist中,我定义了3个控制器。我想在cah_annotation和standard_proposal资源之间建立父/子关系。我找不到这个错误的原因:

$ ./app/console debug:router

[Symfony\Component\Config\Exception\FileLoaderLoadException]                                                    
Every parent controller must have `get{SINGULAR}Action($id)` method                                             
where {SINGULAR} is a singular form of associated object in /var/www/html/cdpaccess/src/ICC/ProposalBundle/Res  
ources/config/routing.yml (which is being imported from "/var/www/html/cdpaccess/app/config/routing.yml").

[InvalidArgumentException]                                           
Every parent controller must have `get{SINGULAR}Action($id)` method  
where {SINGULAR} is a singular form of associated object

奇怪的是,如果我修改routing.yml并将cah_annotation上的父资源设置为proposal:

cah_annotation:
    parent: proposal

工作正常。即使我一起删除了提案资源条目,我也会得到同样的错误。

我在这里做错了什么?这些控制器非常类似,它如何与提案资源一起使用而不是standard_proposal?

我正在使用friendsofsymfony / rest-bundle 1.7.2。

我确实已经看到了this的问题。这似乎与我已经完成的那个问题不同。

1 个答案:

答案 0 :(得分:0)

也许您忘记在嵌套实体中添加此get {SINGULAR} Action($ id)中的嵌套ID参数:

class SubEntityController
{
     ...
     getSubEntityAction($subId, $id) {
           ...   
     }
}

... getSubSub ....($ subSubId,$ subId,$ id)......依此类推,在每个嵌套实体上。

这个适用于我。