2015-10-16 19 views
5

Ho il seguente percorso risorsa:laravel risorsa di routing - aggiornamento getta "metodo non consentito" l'errore

Route::resource('pools', 'PoolsController'); 

Ho anche un modulo di modifica che dovrebbe inviare al metodo di "aggiornamento" del controllore, configurare come questo :

{{ Form::open(array('route' => ['pools.update', $pool['id']])) }} 

Quando ho inviato il modulo, si apre www.domain.com/pools/6 (6 essendo $pool['id'] sopra). Tuttavia, invece di eseguire il codice nel metodo update(), si genera un errore:

Symfony \ Component \ HttpKernel \ Exception \ MethodNotAllowedHttpException 

Ora, ho trovato la segnalazione degli errori di laravel molto scostante finora, e questo non fa eccezione. La descrizione dell'errore è vaga al massimo e non fa nulla per aiutarmi a risolvere il problema.

Avevo l'impressione che il metodo di aggiornamento dovesse ricevere automaticamente i dati dei post quando si utilizza il routing pieno di risorse. Ha anche funzionato in alcuni esempi prima, usando la stessa sintassi.

Quindi qualcuno può dirmi cosa potrebbe succedere qui?

+0

hai provato a passare un metodo al modulo? – Szenis

+0

Possibile duplicato di [MethodNotAllowedHttpException laravel-4] (http://stackoverflow.com/questions/17501653/methodnotallowedhttpexception-laravel-4) –

risposta

5

per eseguire il codice nel metodo di aggiornamento, è necessario spoofare una richiesta PUT. guarda qui: Form Method Spoofing

+1

Diritto. Tipo di richiesta errato. Grazie, accetterà la risposta. Questa potrebbe essere una digressione, ma ucciderebbe Laravel solo per dire "il metodo di aggiornamento si aspetta dati PUT" invece di questo errore generico che potrebbe significare un numero qualsiasi di cose diverse? – jovan

+0

in realtà è piuttosto semplice se ci pensi. "metodo non consentito" dovrebbe leggere "non hai scritto codice per gestire questo metodo" in termini laici. controlla anche [i documenti] (http://laravel.com/docs/5.1/controllers#restful-resource-controllers) –