sto*_*fln 6 rest routing symfony
目前我有通常的Controller/Action结构:
BlogController:
/blog/list
/blog/create
/blog/detail/my-blog-hash
Run Code Online (Sandbox Code Playgroud)
和PostController
/post/create
/post/detail/my-post-hash
Run Code Online (Sandbox Code Playgroud)
我想要的是博客帖子详细信息视图的URL:
/blog/detail/my-blog-hash/post/my-post-hash
Run Code Online (Sandbox Code Playgroud)
我知道有一个RESTBundle,但是这让IMO过于复杂,并且路由和表单验证存在一些我无法解决的真正问题(即使在IRC的帮助下).我不需要JSON,序列化器,特殊视图等的访问点,我只需要一种方法来以某种方式堆栈控制器.
有人可以帮我弄这个吗?
这不能回答您的具体问题,但我想推荐一个更加RESTful的更清晰的URL设计.
通常,博客与/blogs基础资源交互.
POST /blogs 创建一个博客.
GET /blogs 列出所有博客.
要使用特定博客,请指定哪个博客.
GET /blogs/:id 获取特定博客的详细信息.
现在具体说明您要与之交互的博客子资源.
POST /blogs/:id/posts 创建一个新帖子.
GET /blogs/:id/posts/:id 获取特定博客的特定帖子的详细信息.
我安装了RestBundle,玩了几个小时后我又删除了它,因为路线不灵活(至少我没有找到如何相应地设置路线)。
之后,我就像在普通控制器中一样设置路线。所以我添加了这样的路由注释:
// BlogController
@ORM\Route("blogs/{blogHash}", name="blog_detail")
public function detailAction(Blog $blog)
Run Code Online (Sandbox Code Playgroud)
和:
// PostController
@ORM\Route("blogs/{blogHash}/post/{postHash}", name="blog_post_detail")
public function detailAction($blogHash, $postHash)
Run Code Online (Sandbox Code Playgroud)
重要提示:在路由配置中,您必须在 BlogController 之前包含 PostController
| 归档时间: |
|
| 查看次数: |
2653 次 |
| 最近记录: |