PHP-дескриптор поставить запрос от backbone.js - PullRequest
4 голосов
/ 03 июня 2011

Когда backbone.js сохраняет модель на сервере, он отправляет запрос PUT.Как мне справиться с этим с php?Как мне взять содержимое, отправленное с запросом пут, и сохранить его в базе данных?

Ответы [ 3 ]

8 голосов
/ 04 июня 2011

Вот еще один пример:

$ values ​​= json_decode (file_get_contents ('php: // input'), true);

  • Это приведет к массиву (второй параметр json_decode ()) $ values, который будет содержать ваши пары ключ => значение полученных данных json.
5 голосов
/ 03 июня 2011

см. Документацию php для примера http://php.net/manual/en/features.file-upload.put-method.php

с php.net:

<?php
/* PUT data comes in on the stdin stream */
$putdata = fopen("php://input", "r");

/* Open a file for writing */
$fp = fopen("myputfile.ext", "w");

/* Read the data 1 KB at a time
   and write to the file */
while ($data = fread($putdata, 1024))
  fwrite($fp, $data);

/* Close the streams */
fclose($fp);
fclose($putdata);
?>

вы можете оставить часть fwrite, если хотите сохранить данные в БД.

4 голосов
/ 04 июня 2011
Backbone.emulateHTTP = true;
Если вы хотите работать с устаревшим веб-сервером, который не поддерживает подход REST / HTTP, используемый Backbones по умолчанию, вы можете включить Backbone.emulateHTTP. Установка этого параметра будет имитировать запросы PUT и DELETE с HTTP POST и передавать их в параметре _method. Установка этой опции также установит заголовок X-HTTP-Method-Override с методом true.

После этого реализуйте в своей модели собственную функцию sync: http://documentcloud.github.com/backbone/#Sync

...