Каждый родительский контроллер должен иметь метод `get {SINGULAR} Action ($ id)`, когда у меня есть многоуровневый субресурс в FOS Rest Bundle

У меня есть три контроллера по имени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)
    {
    ...
    }
}

routing.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, работает!

Ответы на вопрос(1)

Ваш ответ на вопрос