所以在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,請分享該錯誤嗎? –