Когда backbone.js сохраняет модель на сервере, он отправляет запрос PUT.Как мне справиться с этим с php?Как мне взять содержимое, отправленное с запросом пут, и сохранить его в базе данных?
Вот еще один пример:
$ values = json_decode (file_get_contents ('php: // input'), true);
см. Документацию 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, если хотите сохранить данные в БД.
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
sync