Magento - 如何检查某个类别是否是另一个类别的孩子

Mac*_*Man 1 php magento

我在帮助器中检索产品所属的所有类别ID:

$productCategories = $this->getProduct()->getCategoryIds();
Run Code Online (Sandbox Code Playgroud)

这给了我一组类别ID.就我而言,每个产品只会在一个子类别中.根据ID,我需要根据哪些类别是子项来确定逻辑顺序.

目的是创建一个方法,我可以调用它并指定产品所需的类别级别,它将返回该类别的路径.

我知道我可以像这样加载一个类别:

Mage::getModel('catalog/category')->load($categoryId)
Run Code Online (Sandbox Code Playgroud)

而且我知道我在PHP中做了什么,但只是稍微坚持逻辑(和方法)来实现我想要的东西.

phi*_*kle 5

最简单的方法是测试它是否有与之关联的父ID.parent_id> 0表示它是较低级别的类别.如果parent_id等于1,则意味着它比根类别低一级.

$category = Mage::getModel('catalog/category')->load($categoryId)
echo $category->getParentId();
Run Code Online (Sandbox Code Playgroud)

我建议不要使用原始SQL,因为这是不好的做法,数据库架构可能会在某些时候发生变化.

  • 首先 - 不要因为答案与你自己的不同而不愿意 - 这是不好的形式.第二 - 使用我描述的方法除了所需的类别之外不加载任何东西 - 不是所有类别并且需要循环.你是Magento的新手?使用模型允许Magento缓存结果并在实例的同一次运行中重用.原始查询每次都会访问数据库.使用API​​是标准的Magento实践 - 避免使用原始SQL.http://stackoverflow.com/a/9823256/582138 (3认同)