Я пытаюсь сделать запрос PUT для Slim, используя следующий код:
<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);