1

在沙发上使用 php:php-on-couch

我正在尝试传入 startkey 和 endkey,这有效:

$client->startkey( array( $val1, $val2) ) ); 
$client->endkey( array( $val1 , $val2) ) ); 

但是这不起作用:

$client->startkey( array( $val1) ) ); 
$client->endkey( array( $val1 , '{}') ) ); 

我认为 PHP 在处理空对象时遇到了问题。有任何想法吗?

4

2 回答 2

2

字符串是否有可能'{}'不是作为对象发送,而是作为字符串发送?您要发送(为清晰起见格式化)

startkey=%5B%22val1%22%5D        // decodes to: ["val1"]
endkey=%5B%22val1%22%2C%7B%7D%5D // decodes to: ["val1",{}]

但也许沙发上的 PHP 正在请求

startkey=%5B%22val1%22%5D              // decodes to: ["val1"]
endkey=%5B%22val1%22%2C%22%7B%7D%22%5D // decodes to: ["val1","{}"]

如果是这种情况(我猜了一下),那么使用数组(对象)作为第二个元素呢?

$client->startkey( array( $val1) ) ); 
$client->endkey( array( $val1 , array() ) ) ); 

那样有用吗?

于 2012-04-09T00:39:33.053 回答
0

我正在补充@JasonSmith 的答案,希望它能对其他人有所帮助。这是澄清上述答案所需的要点。如果您将它们作为数组对象传递,则 startkey 和 endkey 将起作用,即使您每个只需要一个参数。

$this->couchdb
->startkey(array($gallery_id))
->endkey(array($gallery_id))
->getView('galleries','by_galleryid');
于 2013-09-25T01:44:22.860 回答