Есть этот метод getCategoryIds()
в Mage_Catalog_Model_Resource_Eav_Mysql4_Product
. Этот метод возвращает все идентификаторы категории запрашиваемого продукта. Мне нужно изменить оператор 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'");
Это работает, но я хотел бы спросить, есть ли лучший способ сделать это.