我有三个名为BlogController
,的控制器PostController
,CommentController
即CommentController
的子资源PostController
和的PostController
子资源BlogController
。
/**
* @Rest\RouteResource("blog", pluralize=false)
*/
class BlogController extends FOSRestController
{
public function getAction($blogUri)
{
...
}
}
/**
* @Rest\RouteResource("post", pluralize=false)
*/
class PostController extends FOSRestController
{
public function getAction($postId)
{
...
}
}
/**
* @Rest\RouteResource("comment", pluralize=false)
*/
class CommentController extends FOSRestController
{
public function getAction($commentId)
{
...
}
}
路由.yml
mgh_blog:
resource: MGH\BlogBundle\Controller\BlogController
type: rest
mgh_blog_post:
resource: MGH\BlogBundle\Controller\PostController
type: rest
parent: mgh_blog
mgh_blog_post_comment:
resource: MGH\PostBundle\Controller\CommentController
type: rest
parent: mgh_blog_post
我定义了getAction
方法,但出现以下错误:
[InvalidArgumentException]
Every parent controller must have `get{SINGULAR}Action($id)` method
where {SINGULAR} is a singular form of associated object
编辑:
我也尝试将方法的名称更改为getCommentAction($commentId)
,getPostAction($postId)
和getBlogAction
,但它不起作用。
当我使用@RouteResource
注解时,方法名必须是getAction($id)
,否则不起作用。
mgh_blog_post_comment
当我将路由器的父级更改为 时mgh_blog
,它正在工作!