Вопрос

Мне нужно найти attribute_id значения атрибутов image, small_image а также thumbnail. Анкет Я знаю их для моей базы данных - 85, 86 и 87, но мне нужно сделать динамику моего запроса, а не с твердыми значениями. То, с чем я борюсь, - это найти, в какой таблице хранятся атрибуты. Я проверил catalog_product_attribute Но нет колонки с name/code атрибутов.

Мне нужно приобрести их как запрос SQL, а не как Mage::... PHP -код. Пример кода запроса SQL или любое другое руководство будет очень полезным.

Это было полезно?

Решение

$attribute = Mage::getModel('eav/config')->getAttribute('catalog_product', $attributeCode);
$id = $attribute->getId();

если $id является null тогда атрибута не существует.
Он работает так же для получения атрибутов категории, атрибутов клиента и атрибутов адреса клиента.

$attribute = Mage::getModel('eav/config')->getAttribute('catalog_category', 'is_anchor');
$attribute = Mage::getModel('eav/config')->getAttribute('customer', 'gender');
$attribute = Mage::getModel('eav/config')->getAttribute('customer_address', 'postcode');

РЕДАКТИРОВАТЬ
Видимо, я не могу читать. Я пропустил линию, в которой говорилось sql query.
Вот запрос также:

SELECT 
    e.attribute_id 
FROM 
    eav_attribute e
LEFT JOIN
    eav_entity_type t 
ON e.entity_type_id = t.entity_type_id
WHERE 
    e.attribute_code = 'image' AND
    t.entity_type_code = 'catalog_product'

Другие советы

Я использовал эти коды для получения идентификатора атрибута в eav_attribute столы

$attribute_code = 'image';

$eavCollections = Mage::getModel('eav/entity_attribute')->getCollection()
                    ->addFieldToFilter('attribute_code', array('eq'=> $attribute_code ));

                foreach($eavCollections as $eavCollection){
                   $attribute_id = $eavCollection['attribute_id']; //get the attribute id
                   echo $attribute_id;
                }
Лицензировано под: CC-BY-SA с атрибуция
Не связан с magento.stackexchange
scroll top