Я пытаюсь обновить документ CouchDB с помощью PHP, но всегда получаю {"error": "запрещено", "причина": "неверные данные"} при отправке запроса PUT.GET-запросы работают нормально.
Я использовал "Baachi / CouchDB" из https://github.com/Baachi/CouchDB, а также следовал инструкциям здесь https://cwiki.apache.org/confluence/display/COUCHDB/PHP.
GET-запросы работают, находят, и ямогу получить документы, но при отправке запроса PUT я получаю следующий ответ: {"error": "запрещено", "причина": "неверные данные"}
$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 "}«