Найдите attruitule_id by attruity_code
-
16-10-2019 - |
Вопрос
Мне нужно найти 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;
}