1

「PUT」メソッドで「/test/item/1/name」を使用してフィールドを更新しようとすると、次のエラーが表示されます「「GET /test/item/1/name」のルートが見つかりません: メソッドは許可されていません(許可: PUT)

メソッドを「POST」に変更すると、同じルートが機能します

リクエストが処理される前に(つまり、「$request = Request::createFromGlobals();」の前に )「 Request::enableHttpMethodParameterOverride(); 」を app.php に追加しようとしましたhttps://github.com/sensiolabs/SensioGeneratorBundle/問題数/165

私のルーティング構成

information_set_name:
  pattern:  /item/{id}/name
  defaults: { _controller: TestInformationBundle:Item:setName, _format: json }
  requirements: { _method: put, id: \d+ }

symfony バージョン:"v2.2.1"

前もって感謝します

4

2 に答える 2

1

開発モードで作業している場合は、app_dev.phpを追加する必要がありRequest::enableHttpMethodParameterOverride();ます (エラー メッセージからわかるように)。

_methodまた、パラメーターに別の制約方法を使用する必要があります。

information_set_name:
  pattern:  /item/{id}/name
  defaults: { _controller: TestInformationBundle:Item:setName, _format: json }
  requirements: { id: \d+ }
  methods:   [PUT]

記事を参照してくださいhttp://symfony.com/doc/current/cookbook/routing/method_parameters.html

于 2013-06-20T07:17:18.070 に答える