作为我们正在开发的电子商务解决方案的一部分,CMS可以选择产品类别有无限数量的子类别,每个子类别可以有无限数量。基本上,产品类别有一个无限的嵌套级别。
类别的数据库表模式如下所示:
+-------------+-----------------+----------------+
| category_id | name | parent_id |
+-------------+-----------------+----------------+
| 1 | Parent 1 | null |
| 2 | Child of Parent | 1 |
+-------------+-----------------+----------------+
我们想为类别导航的每个级别添加一个breadcrumbs导航,所以我的问题是,在指定了父级的情况下,在类别中循环,直到达到最高级别的最佳做法是什么?
显然,我们可以在固定循环中对其进行编码(例如if($child->hasParent()) { echo '1'; if($child->children->hasParent() { } }
等
如何在未知数量的类别中迭代,直到到达顶级类别(即未分配parent_id
的类别)?
只需使用while循环即可。
while($child->hasParent()) {
echo $child->name();
$child = $child->Parent();
}
If(parent class==null)
那么子类==空
其他hasparent类(null)==0
重复