在PHP中输出面包屑的最佳实践

时间:2011-06-25 10:31:48

标签: php mysql breadcrumbs

作为我们正在开发的电子商务解决方案的一部分,CMS可以选择产品类别具有无限数量的子类别,并且每个子类别可以具有无限数量的子类别。基本上,产品类别的嵌套级别是无限的。

类别的数据库表架构如下所示:

+-------------+-----------------+----------------+
| category_id |      name       |   parent_id    |
+-------------+-----------------+----------------+
|     1       |    Parent 1     |      null      |
|     2       | Child of Parent |        1       |
+-------------+-----------------+----------------+

我们想为类别导航的每个级别添加面包屑导航,所以我的问题是,在分配父级时循环浏览类别的最佳做法是什么,直到达到顶级?

显然,我们可以在固定循环中编码(例如if($child->hasParent()) { echo '1'; if($child->children->hasParent() { } }等等。

如何迭代未知数量的类别,直到达到顶级类别(即没有分配parent_id的类别?

2 个答案:

答案 0 :(得分:2)

只需使用while循环。

while($child->hasParent()) {
     echo $child->name();
     $child = $child->Parent();
}

答案 1 :(得分:0)

if(parent class == null)

然后 子类== null

否则 hasparent class(null)== 0

重复