所以我在这里看到的第一个问题是……您正在尝试为特定品牌选择属性。属性实际上没有品牌(也没有模型)。
你能澄清一下用例吗?您是否试图获得品牌 114 的所有产品的 modellijn(打字很有趣)价值?你的预期输出是什么?
或者,如果您更自在,您希望看到生成的 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 您也想加载该属性。从 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 语句,并尽可能提供有关您在何处使用此数据的更多信息。这将帮助我理解您执行代码的上下文。