用PHP输出面包屑的最佳实践

用PHP输出面包屑的最佳实践,php,mysql,breadcrumbs,Php,Mysql,Breadcrumbs,作为我们正在开发的电子商务解决方案的一部分,CMS可以选择产品类别具有无限数量的子类别,并且每个子类别可以具有无限数量的子类别。基本上,产品类别有一个无限制的嵌套级别 类别的数据库表架构如下所示: +-------------+-----------------+----------------+ | category_id | name | parent_id | +-------------+-----------------+----------------

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

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

+-------------+-----------------+----------------+
| category_id |      name       |   parent_id    |
+-------------+-----------------+----------------+
|     1       |    Parent 1     |      null      |
|     2       | Child of Parent |        1       |
+-------------+-----------------+----------------+
我们想为类别导航的每个级别添加一个面包屑导航,所以我的问题是,当有一个指定的父级时,在类别中循环,直到它到达顶层的最佳实践是什么

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


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

只需使用while循环即可

while($child->hasParent()) {
     echo $child->name();
     $child = $child->Parent();
}
If(父类==null)

然后 子类==null

否则 hasparent类(null)==0

重复