当backbone.js将模型保存到服务器时,它会发送PUT请求。我如何用PHP处理这些?如何获取随put请求发送的内容,并将它们存储在数据库中?
答案 0 :(得分:8)
这是另一个例子:
$ values = json_decode(file_get_contents('php:// input'),true);
答案 1 :(得分:5)
请参阅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部分保留。
答案 2 :(得分:4)
Backbone.emulateHTTP = true;
如果您想使用不支持Backbones的默认REST / HTTP方法的旧Web服务器,您可以选择打开Backbone.emulateHTTP。设置此选项将使用HTTP POST伪造PUT和DELETE请求,并在_method参数下传递它们。设置此选项还将使用true方法设置X-HTTP-Method-Override标头。
之后,在您的模型中实施您自己的sync
功能:http://documentcloud.github.com/backbone/#Sync