Php Parse.com查询指针值
从指针列获取值时遇到问题。有一个名为“User”的列指向parse中的“\u User”类。我正在尝试获取与我的位置数据库中的每一行关联的用户名。但出于某种原因,我得到了一个奇怪的反应Php Parse.com查询指针值,php,oop,object,parse-platform,Php,Oop,Object,Parse Platform,从指针列获取值时遇到问题。有一个名为“User”的列指向parse中的“\u User”类。我正在尝试获取与我的位置数据库中的每一行关联的用户名。但出于某种原因,我得到了一个奇怪的反应 Call to a member function get() on a non-object 我的代码是: $query = new ParseQuery("SignoutDestination"); $query->includeKey("User"); // Limit what cou
Call to a member function get() on a non-object
我的代码是:
$query = new ParseQuery("SignoutDestination");
$query->includeKey("User");
// Limit what could be a lot of points.
$query->limit(100);
// Final array of objects
$signoutdestinations = $query->find();
foreach($signoutdestinations as $obj){
echo $obj->get("User")->get("username");
}
SDK中是否有更改或任何可能导致此问题的内容?还是我做错了什么 我遇到了同样的问题,我找到了解决办法:
$query = new ParseQuery("SignoutDestination");
$query->includeKey("User"); // I didn't use it in my query
// Limit what could be a lot of points.
$query->limit(100);
// Final array of objects
$signoutdestinations = $query->find();
foreach($signoutdestinations as $obj){
$pointer = $obj->get("User");
// It retrieves a pointer to object, so you
// can only getObjectId() and specific fields
// like this
$pointer->fetch();
$pointer->getUsername();
// Now you're able to getUsername()
}
我希望它能帮助你,我会把它作为评论发布,但由于我新创建的帐户,所以无法发布
编辑:我用我在解析中尝试过的东西修改了代码,它起到了作用,但它只是因为抓取而破坏了您的请求比率,找到一种聪明的方法来获取用户名,只需查询_User并比较ObjectId即可
事实上,对于includeKey(),它应该像您编写的那样工作…可能是因为我不会说PHP,但在我看来错误的是find()结果的赋值。在另一个SDK中,find将异步运行,因此您检查的与$signoutdestinations相关的任何内容都不会被初始化。我可以做echo$obj->get(“用户”);它返回的对象数组很好,但由于某些原因,我无法访问用户名。其他SDK中的另一个事实,希望对您有用,就是用户名有自己的访问器方法(称为username),与使用get的其他属性不同。我想知道它是哪一个
get()
。。。$obj
实际上是一个对象吗?我想var\u dump($obj)
或gettype($obj)
查看。如果是,调用$obj->get('User')
可能没有返回对象。我会尝试在那里通过演绎进行调试。@JakeOls-您提到$obj->get('User')
返回一个对象数组。如果是这样,您必须迭代该结果集,并对每个对象调用->get('username')
array
不是一个对象,也没有get()
方法,或者任何类似的方法。谢谢,我在从解析地理点获取lat/long时必须这样做,但出于某种原因,它仍然说“在非对象上调用成员函数getUsername()”。。。我在github上打开了一个问题,但它很快就被关闭了:/我将更新此线程,以防找到解决方案。