php oncouch不会搜索空对象

时间:2012-04-04 21:10:08

标签: php couchdb

在沙发上使用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在使用空对象时遇到了麻烦。有什么想法吗?

2 个答案:

答案 0 :(得分:2)

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

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

但也许Couch上的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() ) ) ); 

这有用吗?

答案 1 :(得分:0)

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

$this->couchdb
->startkey(array($gallery_id))
->endkey(array($gallery_id))
->getView('galleries','by_galleryid');