解析PHP SDK - 返回NULL或未定义值的记录
问题描述:
我有一些通过Parse PHP SDK存储的记录。 其中字段中有一个日期字段,用未定义的值初始化。解析PHP SDK - 返回NULL或未定义值的记录
在旅途中,如果我设置日期,然后想“取消”,该值可能会更改为实际日期或空值。我正在做的是将其设置为空。
问题是,当我想过滤设置日期和所有其他(在我的情况下,未定义和空值都应该是相同的,即“未设置”),我尝试一个查询过滤器类似于以下内容:
$query->equalTo("mydatefield", NULL);
奇怪的是它只返回未定义的值,而不是NULL值。
在另一方面,当我使用
$query->notEqualTo("mydatefield", NULL);
所需的记录都返回就好了。
任何想法如何完成获取null和undefined值?
在此先感谢。
答
你是对的,它似乎不适用于PHP库。同样的事情与Javascript库一起工作正常。
通过排除非空(或未定义)的值,您可以完成所需的操作。这里有一个例子:
use Parse\ParseQuery;
//fetch objectIds of all data that is not null
$query = new ParseQuery("tabledata");
$query = $query -> notEqualTo("mydatefield", null);
$results = $query -> find();
$keys = array();
for ($i=0; $i<count($results); $i++){
array_push($keys, $results[$i]-> getObjectId());
}
//now fetch all records but the records with the null column
$query2 = new ParseQuery("tabledata");
$query2 = $query2 -> notContainedIn("objectId", $keys);
$results2 = $query2 -> find();
答
可以过滤与空字段的查询与ParseQuery类exists
和doesNotExist
方法。
$query->exists("mydatefield"); // returns rows that do not have null value for mydatefield key.
$query->doesNotExist("mydatefield"); // returns rows that have null value for mydatefield key.
+0
这个过滤器只会过滤未定义值的字段,而不是空字段。在解析你有null和未定义的值。该查询应该是“doesNotExists或等于null”,但我不知道如何广告该“或”。 – Daniel 2017-04-11 13:38:44
谢谢abinop!虽然这不是实现我想要的最佳方式,但对我来说绝对是可行的。我希望parse.com团队将在未来的版本中处理这个问题。 – 2014-11-02 17:37:23
现在还没有修复。非常感谢你,这件事让我疯狂...... – Daniel 2017-04-11 16:01:41