như vậy trong routing.yml tôi có các tuyến đường sau đây được xác định theo thứ tự để chỉnh sửa và xóa cài đặt cụ thể:Symfony2 Routing: Phương pháp không được phép (Allow: {Method})
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]
Và trong bộ điều khiển của tôi, tôi có những hành động đúng định nghĩa: 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
}
Trong hành động thứ hai, tôi chỉ cần id
và widgetType
để tôi có thể truy vấn và xóa bản ghi đã chọn.
Khi tôi đi đến một trong các tuyến đường tôi nhận được như sau:
Sửa Route Lỗi:
No route found for "GET /settings/2b2acd55-0dd6-11e5-8107-621ae3320fd4/defaults/edit/default": Method Not Allowed (Allow: POST, PUT)
Xóa Route Lỗi:
No route found for "GET /settings/2b2acd55-0dd6-11e5-8107-621ae3320fd4/defaults/delete/default": Method Not Allowed (Allow: DELETE)
Nhưng khi tôi loại bỏ một và để cho người kia họ làm việc tốt. Tôi giả định đó là định nghĩa đường dẫn tương tự? Có thể cho tôi để giữ cho các đường dẫn tương tự và không nhận được lỗi này? Tôi không hiểu gì?
Nhờ sự giúp đỡ của bạn, ANTH
Hey Jave, cảm ơn cho câu trả lời.Bây giờ tôi đã gỡ bỏ các phương thức, khi xóa, nó báo cáo một lỗi trong 'editAction', bất kỳ lý do gì mà hành động route đó cũng được gọi? –
@AnthBieb: bạn đã xóa phần 'phương thức' nhưng tôi khuyên bạn nên giữ nó; đây là ngữ nghĩa chính xác. lỗi không phải là trong các tuyến đường nhưng vào yêu cầu url (bạn cần phải gọi nó với DELETE, PUT hoặc POST phương pháp giải quyết) – DonCallisto
@ AnthBieb, bạn có thể vui lòng chia sẻ lỗi? –