Итак, первая проблема, которую я вижу здесь - это то, что вы пытаетесь выбрать атрибут для конкретной марки.Атрибуты на самом деле не имеют брендов (ни modellijns).
Не могли бы вы уточнить пример использования?Вы пытаетесь получить модельную (забавно набирать) стоимость всех продуктов с брендом 114?Каков ожидаемый результат?
Или, если вам так удобнее, какой запрос SQL вы бы ожидали увидеть?
Спасибо, Джозеф Мастей
Хорошо, основываясь на вашем обновлении, я просто хотел уточнить некоторые вещи.
- Наборы атрибутов имеют атрибуты
- У атрибутов есть параметры (иногда)
- Продукты имеют значения атрибутов
- Категории имеют продукты
Если вам просто нужно найти модельный ряд конкретного продукта, то вам просто нужно запросить его.Если у вас есть один продукт, это должно сработать:
$product = Mage::getModel("catalog/product")->load($id); // Magento does this for you in some cases
$product->getModellijn(); // this will return your value
$product->getAttributeText('modellijn'); // IIRC, this works for <select> type attributes
Если вы загружаете продукты из коллекции, вам нужно сообщить Magento, что вы тоже хотите загрузить этот атрибут.Выбор everything из EAV даже дороже, чем выбор всего из стандартной нормализованной базы данных.Поэтому Magento ожидает, что вы скажете ему, что вам нужно.
$collection = Mage::getModel("catalog/product")->getCollection();
$collection->addAttributeToFilter("brand", 114); // limit for brand
$collection->addAttributeToSelect("modellijn"); // * also works but is slow
foreach($collection as $product) {
$product->getModellijn(); // just as above
$product->getAttributeText('modellijn');
}
Дайте мне знать, если это поможет вам.Если это не так, пожалуйста, измените свой пост выше, чтобы включить более полный оператор SQL, и, если возможно, больше информации о том, где вы используете эти данные.Это поможет мне понять контекст, в котором вы выполняете код.