gpt4 book ai didi

magento - 获取产品的类别 ID 和名称

转载 作者:行者123 更新时间:2023-12-01 13:54:25 27 4
gpt4 key购买 nike

Mage_Catalog_Model_Resource_Eav_Mysql4_Product 中有这个方法getCategoryIds()。此方法返回所请求产品的所有类别 ID。我需要修改 SELECT 语句,以便它也返回类别名称。

这是基本查询:


$select = $this->_getReadAdapter()->select()
->from($this->_productCategoryTable, 'category_id')
->where('product_id=?', $product->getId());

由于某些原因,我不能使用 catalog_category_flat 表,所以我必须使用 EAV 表。所以此时我有这个查询:


$select = $this->_getReadAdapter()->select()
->from($this->_productCategoryTable, 'category_id')
->where('catalog_category_product.product_id=?', $product->getId())
->join(
array('a' =>'catalog_category_entity_varchar'),
'a.entity_id = catalog_category_product.category_id',
array('name' => 'value')
)
->join(
array('b' => $this->getTable('eav/attribute')),
'b.attribute_id = a.attribute_id',
array()
)
->where("b.attribut_code = 'name'");

这行得通,但我想问一下是否有更好的方法。

最佳答案

最简单也可能是最干净的:

$categories = $product->getCategoryCollection()
->addAttributeToSelect('name');

然后你可以简单地遍历集合:

foreach($categories as $category) {
var_dump($category->getName());
}

关于magento - 获取产品的类别 ID 和名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7024808/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com