così in routing.yml Ho le seguenti percorsi definiti al fine di modificare e cancellare le impostazioni specifiche:Symfony2 Routing: Metodo non consentito (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]
E nel mio controller ho le azioni corrette definite: 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
}
Nella seconda azione sono necessari solo il id
e il widgetType
inoltrato in modo da poter richiedere e rimuovere il record selezionato.
Quando vado a uno dei percorsi ottengo il seguente:
Modifica percorso di errore:
No route found for "GET /settings/2b2acd55-0dd6-11e5-8107-621ae3320fd4/defaults/edit/default": Method Not Allowed (Allow: POST, PUT)
Elimina Errore Percorso:
No route found for "GET /settings/2b2acd55-0dd6-11e5-8107-621ae3320fd4/defaults/delete/default": Method Not Allowed (Allow: DELETE)
Ma quando ho rimuoverne uno e lasciare l'altro funzionano bene. Suppongo che siano le definizioni di percorso che sono simili? È possibile per me mantenere gli stessi percorsi e non ottenere questo errore? Cosa non sto comprendendo?
Grazie per il vostro aiuto, Anth
Hey JAVE, grazie per la risposta.Ora che ho rimosso i metodi, quando si cancella, riporta un errore nella "editAction", qualsiasi ragione per cui viene chiamata anche quell'azione di route? –
@AnthBieb: hai rimosso la parte 'methods' ma ti suggerisco di mantenerla; questo è semanticamente corretto. l'errore non è nelle rotte ma nella richiesta url (è necessario chiamarlo con il metodo DELETE, PUT o POST impostato) – DonCallisto
@AnthBieb, potresti condividere l'errore? –