问题描述
||
作为我们正在努力的电子商务解决方案的一部分,CMS可以选择产品类别具有无限数量的子类别,并且每个子类别可以具有无限数量的子类别。基本上,产品类别有一个无限的嵌套级别。
类别的数据库表架构如下所示:
+-------------+-----------------+----------------+
| category_id | name | parent_id |
+-------------+-----------------+----------------+
| 1 | Parent 1 | null |
| 2 | Child of Parent | 1 |
+-------------+-----------------+----------------+
我们想为类别导航的每个级别添加一个面包屑导航,所以我的问题是,在分配了父项直到到达顶级之前,遍历类别的最佳实践是什么?
显然,我们可以将其编码为固定循环(例如if($child->hasParent()) { echo \'1\'; if($child->children->hasParent() { } }
等)。
您如何遍历未知数量的类别,直到达到顶级类别(即未分配“ 2”的类别)?
解决方法
只需使用while循环即可。
while($child->hasParent()) {
echo $child->name();
$child = $child->Parent();
}
, 如果(父类==空)
然后
子类==空
其他
hasparent class(null)== 0
重复