2015-10-16 5 views
5

を投げる私は、次のリソースのルートがあります。Laravelリソースルーティングアップデートは、「メソッド許可されていません」というエラー

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

を私はまた、このように設定し、コントローラの「更新」の方法、に投稿すべき編集フォームを持っています:私はフォームを送信する場合、それはwww.domain.com/pools/6を開く

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

(6が上記$pool['id']です)。しかし、代わりにupdate()方法でコードを実行するので、それはエラーがスローされます。

Symfony \ Component \ HttpKernel \ Exception \ MethodNotAllowedHttpException 

、私はLaravelのエラーは今のところ非常に助けにならない報告見つけたが、これは例外ではありません。エラーの説明は最高であいまいで、問題のトラブルシューティングに役立つものは何もありません。

リソースフルルーティングを使用すると、更新メソッドが自動的に投稿データを受け取る必要があるという印象を受けました。以前の例でも、同じ構文を使用していました。

だから、ここで何が起こっているのか教えていただけますか?

+0

フォームにメソッドを渡そうとしましたか? – Szenis

+0

[MethodNotAllowedHttpException laravel-4]の可能な複製(http://stackoverflow.com/questions/17501653/methodnotallowedhttpexception-laravel-4) –

答えて

5

更新メソッドでコードを実行するには、PUTリクエストをスプーフィングする必要があります。ここをクリックしてください:Form Method Spoofing

+1

右。リクエストタイプが間違っています。ありがとう、答えを受け入れるだろう。これは逃亡かもしれませんが、Laravelを殺すと、この一般的なエラーの代わりに「更新メソッドはPUTデータを期待しています」と言うだけで、さまざまなことが起こります。 – jovan

+0

あなたがそれについて考えるなら、それは実際にはかなりストレートです。 「メソッドは許可されていません」は、「あなたはこのメソッドを処理するためのコードを書かなかった」という文言を読むでしょう。 [the docs](http://laravel.com/docs/5.1/controllers#restful-resource-controllers)もチェックしてください。 –

関連する問題