DateTime::__construct()期望字符串,数组给出'


Parse.com php-sdk error in cloud code: 'DateTime::__construct() expects string, array given'

我在云代码中调用这个函数(这是一个非常简单的搜索函数,以绕过php sdk没有"contains"的事实):

Parse.Cloud.define("searchVenues", function(request,response) {
 var query = new Parse.Query("Venue");
 query.contains("nameLowercase",request.params.term);
 query.find({
  success: function(results){
   response.success(results);
  },error: function(){
   response.error("Cloud Venue search failed");
  }
 });
});

我在php脚本中调用它,如下所示:

$search_result = ParseCloud::run("searchVenues", ["term" => $term]);

这个函数以前是工作的!但是现在我得到了一个错误和以下堆栈跟踪:

:  Uncaught exception 'Exception' with message 'DateTime::__construct()     expects parameter 1 to be string, array given' in        C:'xampp'htdocs'bcweb'vendor'parse'php-sdk'src'Parse'ParseObject.php:683
Stack trace:
#0 C:'xampp'htdocs'bcweb'vendor'parse'php- sdk'src'Parse'ParseObject.php(683): DateTime->__construct(Array)
#1 C:'xampp'htdocs'bcweb'vendor'parse'php-sdk'src'Parse'ParseObject.php(631): Parse'ParseObject->_mergeMagicFields(Array)
#2 C:'xampp'htdocs'bcweb'vendor'parse'php-sdk'src'Parse'ParseObject.php(599): Parse'ParseObject->mergeFromServer(Array, true)
#3 C:'xampp'htdocs'bcweb'vendor'parse'php-sdk'src'Parse'ParseClient.php(198): Parse'ParseObject->_mergeAfterFetch(Array)
#4 C:'xampp'htdocs'bcweb'vendor'parse'php-sdk'src'Parse'ParseClient.php(209): Parse'ParseClient::_decode(Array)
#5 C:'xampp'htdocs'bcweb'vendor'parse'php-sdk'src'Parse'ParseCloud.php(35): Parse'ParseClient::_decode(Array)
#6 C:'xampp'htdocs'bcweb'lrs'makeCrawl.php(21): Parse'ParseCloud::run('searchVenues', Array)
#7 {main}

我想象不出是什么把它弄坏了?我还有一个配套函数,它也在新记录上创建namelowcase字段。这是在函数正常工作的快乐时光,所以我无法想象它的存在与错误有任何关系:

Parse.Cloud.beforeSave("Venue", function(request, response) {
 if (request.object.get("name")) {
     request.object.set("nameLowercase",request.object.get("name").toLowerCase());
 }
 response.success();
});

字符串中有一些单引号,但它们以前也在那里。谁能有知识的解析php-sdk解释什么可能是这里的问题?谢谢!

解析php-sdk错误。将php-sdk更新到1.1.9版本修复了这个问题,代码可以像以前一样工作。