在解析中循环访问具有父子关系的数据


Looping through data with Parent-Child relationship in Parse

我的 Parse 数据库中有 2 个表(类),第一个用于"类别",另一个用于"子类别"。

"子类别"

中的每个对象都有一个字段,该字段在"类别"表中保存其主对象的 ID。

我的问题是,我该如何循环浏览它们?假设我想在检索其相关的"子类别"时获取"类别"中的所有数据。

我目前正在做的是,我正在循环"类别

",在这个循环中,我正在循环相关的"子类别"。但不知何故,这样做似乎是错误的(即使它神奇地工作):

<?php
// Parse query objects for "Categories"
$categories = new ParseQuery("categories");
$results = $categories->find();
for ($i = 0; $i < count($results); $i++) {
    $category = $results[$i];
    echo '<option value="' . $category->getObjectId() . '">' . $category->get("cat_name") . '</option>'; // Printing from "Categories"
    // Parse query objects for "Sub Categories"
    $subCategories = new ParseQuery("sub_categories");
    $subCategories->equalTo("master_id", $category->getObjectId());
    $resultsSub = $subCategories->find();
    if ($resultsSub != 0) {
        for ($j = 0; $j < count($resultsSub); $j++) {
            $subCategory = $resultsSub[$j];
            echo '<option value="' . $subCategory->getObjectId() . '">+ ' . $subCategory->get("cat_name") . '</option>'; // Printing from "Sub Categories"
        }
    }
}
?>

使用 matchesQuery 选项使用内部查询。在内部查询中具有父类别的条件,并将其与将用于子类别的外部查询的匹配查询一起使用。https://www.parse.com/docs/php/guide#queries-relational-queries

此外,在子类别查询中使用 include 选项获取父类别对象。这将确保生成的查找操作中的每个子类别对象都有其父类别对象。

希望有帮助。