$attributeInfo = Mage::getResourceModel('eav/entity_attribute_collection')
->setCodeFilter('modellijn')
->addAttributeToFilter('brand', 114)
->getFirstItem();
你好。我想知道以下正确的语法:
选择属性modellijn
所在的属性brand=114
。上面的语法给出了错误。我一直在寻找正确的语法2天但不幸的是到目前为止没有结果。
我希望有人愿意帮助我!
答案 0 :(得分:1)
所以我在这里看到的第一个问题是......你试图为特定品牌选择属性。事实上,拥有品牌(也不是modellijns)。
请说明用例?您是否正在尝试使用品牌114的所有产品获得modellijn(这很有趣)?你的预期产量是多少?
或者,如果您更舒服,那么您希望看到的SQL查询会生成什么?
谢谢, 约瑟夫马斯蒂
好的,根据您的更新,我只是想澄清一些事情。
如果您只是需要找到特定产品的modellijin,那么您只需要求它。如果您有一个产品,这应该可以解决问题:
$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语句,如果可能的话,还有关于使用此数据的位置的更多信息。这将帮助我理解您执行代码的上下文。