Magento - 获取父类别和所有子子类别
我有一个类别,有 2 个子类别。每个类别中又包含 5 个子类别。
有没有办法获得所有这 10 个子类别的列表?
谢谢
编辑:
类似这样的:
Main Category
Sub_Cat_1
Cat_1
Cat_2
Cat_3
Sub_Cat_2
Cat_4
Cat_5
Cat_6
Wanting output like:
Cat_1
Cat_2
Cat_3
Cat_4
Cat_5
Cat_6
谢谢
I have a single category, that has 2 subcategories. Within each of these categories, are 5 subcategories.
Is there a way to get a list of all of these 10 sub-sub-categories?
Thanks
EDIT:
Something like this:
Main Category
Sub_Cat_1
Cat_1
Cat_2
Cat_3
Sub_Cat_2
Cat_4
Cat_5
Cat_6
Wanting output like:
Cat_1
Cat_2
Cat_3
Cat_4
Cat_5
Cat_6
Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
到目前为止,所有答案都在循环中加载子类别,这通常是不好的做法,会导致执行许多 SQL 查询,而单个查询就足够了。
高性能单查询解决方案:
让
$parentCategory
成为您的主类别,然后此集合将加载所有子类别,以下两级:path
字段包含以所有祖先 ID 为前缀的类别 ID,格式为1/2/3
。从数据库角度来说,它是catalog_category_entity
中具有索引的列,因此这样的比较不会出现性能问题。All answers so far load children categories in a loop which is generally bad practice and causes execution of many SQL queries where a single one would suffice.
Performant Single Query Solution:
Let
$parentCategory
be your Main Category, then this collection will load all subcategories, two levels below:The
path
field contains the category id prefixed with all ancestor ids in the form1/2/3
. Database wise it is a column incatalog_category_entity
that has an index, so comparison like this has no performance issues.想通了:
感谢您的浏览!
Figured it out:
Thanks for looking!
我开发了一个递归函数来获取某个类别的所有子级
希望这会对您有所帮助。
I have developed a recursive function to get all children of a category
Hope this will help you.
试试这个
try this
我所做的就是递归地查找祖先类别的 id。
一旦找到它,我就可以打印当前类别的子类别。
如果当前类别没有子类别,那么我将只打印父亲的子类别。
通过这种方式,您可以拥有无限的子类别,并且仍然能够显示子类别列表。
What I do is recursively find the id of the ancestor category.
Once found it, I can print the current category sub categories.
If the current category has no children, than I will just print the father's subcategory.
In this way you can have infinite subcategories and still being able to display a sub category list.