无法使用PHP更新CouchDB文档(输入请求),并始终以“禁止”响应:“无效数据”

时间:2019-03-26 11:22:04

标签: php couchdb couchdb-2.0

我正在尝试使用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“}”

1 个答案:

答案 0 :(得分:0)

我使用了PHP-on-Couch,并且效果很好。