解析PHP SDK - 返回NULL或未定义值的记录

时间:2014-09-29 08:12:51

标签: php null parse-platform

我有一些通过Parse PHP SDK存储的记录。 在这些字段中有一个Date字段,它使用未定义的值进行初始化。

在运行中,如果我设置了一个日期,然后想要"取消设置"那么这个值可能会更改为实际日期或空值。它。我正在做的是将其设置为null。

问题在于,当我想要过滤设置日期和所有其他日期时(在我的情况下,未定义和空值都应该相同,即"未设置")我尝试使用类似于以下内容:

$query->equalTo("mydatefield", NULL);

关于它的奇怪之处在于它只返回未定义的值,而不是NULL值。

另一方面,当我使用

$query->notEqualTo("mydatefield", NULL);

所需的记录都返回正常。

知道如何获得null和undefined值?

提前致谢。

2 个答案:

答案 0 :(得分:2)

你是对的,它似乎不适用于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();

答案 1 :(得分:-1)

您可以使用ParseQuery类的existsdoesNotExist方法过滤带有空字段的查询。

$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.