4

次のコードを使用して、Slim に PUT リクエストを送信しようとしています。

 <script type = "text/javascript">
 function submitform() {
   var url = '/users/' + $('#user_id').val();
   $('#myform').attr('action', url);
   var data = JSON.stringify({"value": $('#user_data').val()});
   $('<input type="hidden" name="json"/>').val(data).appendTo('#myform');
   $("#myform").submit();
   }
 </script>

 <form id = "myform" method="post">
 id:   <input type = "text" id = "user_id">
 data: <input type = "text" name = "value" id = "user_data">
 <input type="hidden" name="_METHOD" value="PUT"/>
 <input type = "button" value = "submit" onClick='submitform()'>
 </form>

私のindex.phpファイルには以下が含まれています:

$app->put('/users/:id', 'update');
function update($id) {
  $jsonmessage = \Slim\Slim::getInstance()->request();
  $message = json_decode($jsonmessage->getBody());
  // what do I put here ????
  }

????の代わりに何を入れればいいですか?値パラメーターを取得します。$_POST['json'] を使えばわかりますが、REST に準拠しているとは思えません。$message->value など、私が試した他のすべては機能しません (何も返されません)。

ありがとう。

アップデート:

Slim フォーラムの誰かが次の回答を提供しました。

$json = $jsonmessage->put('json');
$message = json_decode($json);
4

3 に答える 3

0

以下のコードを使用して、リクエスト本文をプルします

$request = Slim::getInstance()->request();
$user = json_decode($request->getBody());
于 2015-11-24T08:35:30.220 に答える