И это функция:
этот метод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'");
Это работает, но я хотел бы спросить, есть ли лучший способ сделать это.