so in routing.yml habe ich die folgenden Routen festgelegt, um zu bearbeiten und bestimmte Einstellungen zu löschen:Symfony2 Routing: Methode nicht erlaubt (Allow: {Methode})
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]
Und in meinem Controller habe ich die richtigen Aktionen definiert: 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
}
In der zweiten Aktion brauche ich nur die id
und widgetType
übergeben, damit ich den ausgewählten Datensatz abfragen und entfernen kann.
Wenn ich auf eine der beiden Routen erhalte ich die folgende:
Route bearbeiten Fehler:
No route found for "GET /settings/2b2acd55-0dd6-11e5-8107-621ae3320fd4/defaults/edit/default": Method Not Allowed (Allow: POST, PUT)
Routenfehler Löschen:
No route found for "GET /settings/2b2acd55-0dd6-11e5-8107-621ae3320fd4/defaults/delete/default": Method Not Allowed (Allow: DELETE)
Aber als ich entferne eins und lass das andere gut funktionieren. Ich nehme an, es ist die Pfaddefinitionen, die ähnlich sind? Ist es mir möglich, die gleichen Pfade zu behalten und diesen Fehler nicht zu bekommen? Was verstehe ich nicht?
Danke für Ihre Hilfe, Anth
Hey Jave, danke für die Antwort.Jetzt, da ich die Methoden entfernt habe, meldet sie beim Löschen einen Fehler in der 'editAction', warum wird diese Route auch aufgerufen? –
@AnthBieb: Sie haben 'Methoden' entfernt, aber ich schlage vor, dass Sie es behalten; Das ist semantisch korrekt. Fehler ist nicht in Routen, sondern in URL-Anfrage (Sie müssen es mit DELETE, Put oder POST-Methode eingestellt setzen) – DonCallisto
@AnthBieb, können Sie bitte den Fehler teilen? –