所以在routing.yml中我为了编辑和删除特定的设置定义了以下路线:Symfony2的路由:不允许的方法(允许:(方法})
的routing.yml:
settings.editDefaults:
path: settings/{id}/defaults/edit/{widgetType}
defaults: { _controller: AppBundle:Settings:editDefaults }
methods: [POST, PUT]
settings.deleteDefaults:
path: settings/{id}/defaults/delete/{widgetType}
defaults: { _controller: AppBundle:Settings:deleteDefaults }
methods: [DELETE]
在我控制我先定义正确的动作: SettingController.php:
/**
* edit the default settings of a hotel/widget
*/
public function editDefaultsAction(Request $request)
{
//Edit logic
}
/**
* delete a default setting of a hotel/widget
*/
public function deleteDefaultsAction($hotelId, $widgetType)
{
//Delete logic
}
在第二个操作中,我只需要传递id
和widgetType
,以便查询和删除所选记录。
当我要不要去我得到以下的路线:
编辑路线错误:
No route found for "GET /settings/2b2acd55-0dd6-11e5-8107-621ae3320fd4/defaults/edit/default": Method Not Allowed (Allow: POST, PUT)
删除路由错误:
No route found for "GET /settings/2b2acd55-0dd6-11e5-8107-621ae3320fd4/defaults/delete/default": Method Not Allowed (Allow: DELETE)
但是,当我删除一个,并让其他工作正常。我假设它是相似的路径定义?我可以保持相同的路径而不会得到这个错误吗?我不了解什么?
感谢您的帮助,蒽
嘿JAVE,感谢您的回答。既然我已经删除了这些方法,那么在删除时,它会在'editAction'中报告一个错误,为什么该路由操作也会被调用? –
@AnBieb:你删除了'methods'部分,但我建议你保留它;这在语义上是正确的。错误不在路由中,而是在url请求中(您需要使用DELETE,PUT或POST方法设置它) – DonCallisto
@AnBieb,请分享该错误吗? –