haben Ich habe drei Controller namens BlogController
, PostController
, CommentController
dass CommentController
ist Unter Ressource von PostController
und PostController
Unterressource von 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
Ich definiere getAction
Methoden, aber ich bekomme folgende Fehlermeldung:
[InvalidArgumentException]
Every parent controller must have `get{SINGULAR}Action($id)` method
where {SINGULAR} is a singular form of associated object
Edit:
Ich versuche auch, die sich ändern Name der Methode zu getCommentAction($commentId)
, getPostAction($postId)
und getBlogAction
, aber es funktioniert nicht. Wenn ich @RouteResource
Annotationen verwende, muss der Methodenname getAction($id)
sein, sonst funktioniert es nicht.
Wenn ich Eltern von mgh_blog_post_comment
Router zu mgh_blog
ändern, funktioniert es!
Können Sie bitte die Ausgabe des Befehls 'app/console debug: router' posten? – giosh94mhz
@ giosh94mhz 'debug: router' dump' InvalidArgumentException' Fehler – ghanbari
Das ist der gleiche Fehler, den Sie auf dem Webserver bekommen. Sie müssen die fehlerhafte Route auskommentieren und den Befehl ausführen. Auf diese Weise kann ich sehen, welche Route stören könnte (falls vorhanden) – giosh94mhz