2017-05-24 111 views
1

我正在开发使用Symfony和FOSRestBundle的API,并希望使用以下路线:空航线路径

应用程序/配置/ routing.yml中

page: 
    prefix: /page 
    resource: "@PageBundle/Resources/config/routing.yml" 

PageBundle /资源/配置/ routing.yml中

page_get: 
    path: /{id} 
    methods: GET 
    defaults: 
    _controller: PageBundle:Page:get 
    id: null 

page_post: 
    path:/
    methods: POST 
    defaults: 
    _controller: PageBundle:Page:post 

同为PUT和DELETE ...

当我打电话GET对/页工作正常,但是当调用后用于/页,我得到以下错误:

No route found for "POST /page": Method Not Allowed (Allow: GET, HEAD) 

我需要调用的/页/不是/页,那么它的工作原理...

我能做些什么来为不同的方法使用相同的空路径?

对不起,我的英语不好。

+0

你试过方法:['GET','POST' ]?这里有一些点在yml部分http://symfony.com/doc/current/routing/requirements.html#adding-http-method-requirements –

+0

这些方法正在工作,但没有找到POST/page的路由,只有POST/page /。 而GET /页面正常工作。 –

回答

0

你需要做的是从应用程序/配置/ routing.yml中

page: 
    resource: "@PageBundle/Resources/config/routing.yml" 

删除prefix它在PageBundle /资源/配置/ routing.yml中

添加到路径
moodul_page_get: 
    path: /page/{id} 
    methods: GET 
    defaults: 
     _controller: MoodulPageBundle:Page:get 
     id: null 

moodul_page_post: 
    path: /page 
    methods: POST 
    defaults: 
     _controller: MoodulPageBundle:Page:post 

希望这会有帮助

+0

我知道,但我想保留在** app/config/routing.yml **中的前缀,因为我有更多的包共享相同的PageBunde结构。 –

+0

你需要为自己定义'/ page' **前缀**还是**路径**? –

+0

我有更多的捆绑包,比如PageBundle,可以在多个应用程序之间共享。 所以我想用**前缀**在routing.yml中管理每个应用程序中的路由 –