我正在尝试使用PHP更新CouchDB文档,但是在发送PUT请求时,我总是得到{“ error”:“ forbidden”,“ reason”:“ Invalid data”}。 GET请求工作正常。
我使用了https://github.com/Baachi/CouchDB中的“ Baachi / CouchDB”,还遵循了https://cwiki.apache.org/confluence/display/COUCHDB/PHP上的指南。
GET请求可以找到并且可以检索文档,但是在发送PUT请求时,我得到以下响应:{“错误”:“禁止”,“原因”:“无效数据”}
$client = new \GuzzleHttp\Client(['base_uri' => 'http://user:pass@somehost:5984', 'http_errors' => false]);
$connection = new \CouchDB\Connection($client);
$database = $connection->xyzu;
$doc = [
'_id' => 'appointment_2_e7611236-eccd-4f5b-abc3-8396db285014',
'_rev' => '1-a8b63e52533f665d7bdc57aea2eadd35',
'status' => 'Scheduled'
];
$database->update('appointment_2_e7611236-eccd-4f5b-abc3-8396db285014',
$doc);
第二次尝试:
$doc = [
'_id' => 'appointment_2_e7611236-eccd-4f5b-abc3-8396db285014',
'_rev' => '1-a8b63e52533f665d7bdc57aea2eadd35',
'status' => 'Scheduled'
];
$request = $couch->send('PUT', '/' . $message[dbName] . '/' .$message[patient], json_encode($doc));
我期望文档会被更新,我尝试删除_rev只是为了确保我做的一切正确,并且我遇到了文档冲突,因此是正确的。但是当包含_rev时,我返回“禁止”:“无效数据”
我应该得到“ {” ok“:true,” id“:” 123“,” rev“:” 2039697587“}”
答案 0 :(得分:0)
我使用了PHP-on-Couch,并且效果很好。