Невозможно обновить документ CouchDB с помощью PHP (положить запрос), продолжает отвечать «Запрещено»: «Неверные данные» - PullRequest
0 голосов
/ 26 марта 2019

Я пытаюсь обновить документ 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 "}«

1 Ответ

0 голосов
/ 27 марта 2019

Я работал с PHP-on-Couch, и он отлично работал.

...