2013-03-01 75 views
0

如何獲取包含所有產品品牌的數組或對象,而無需通過完整的產品集合。我如何獲得所有Magento產品品牌

這個想法是創建一個動態的品牌頁面,鏈接到每個品牌。

因此,代碼後記會是這樣的:

<ul> 
<?foreach ($brands as $brand):?> 
<li> 
<a href="<?=$helper->getBrandUrl($brand)?>"><?=$helper->getBrandName($brand)?></a> 
</li> 
<?endforeach;?> 
</ul> 
+0

您是否使用單獨的Magento擴展?我不知道Magento具有開箱即用的品牌功能。 – 2013-03-01 14:16:52

回答

1

在我的Magento的品牌屬性編號66,我可以擁有所有的品牌與這個請求:

SELECT DISTINCT value 
FROM eav_attribute_option o, eav_attribute_option_value v 
WHERE attribute_id = '66' 
AND o.option_id = v.option_id 

但是如果你需要一個OOP方式使用它來代替:

$attribute = Mage::getModel('catalog/resource_eav_attribute')->load(66); 
$attributeOptions = $attribute->getSource()->getAllOptions(); ?> 
      <?php foreach ($attributeOptions as $option) { 
      if ($option['value']) echo $option['value']." > ".$option['label']."<br/>"; 
      } ?> 
+0

Works well,Ty 僅供參考,您可以在控制器中使用此功能進行測試: function indexAction(){ $ attribute = Mage :: getModel('catalog/resource_eav_attribute') - > load(66); $ attributeOptions = $ attribute-> getSource() - > getAllOptions(); foreach($ attributeOptions as $ option){ if($ option ['value'])echo $ option ['label']。「
」; } } – ajameswolf 2013-03-01 18:39:25

+0

不要在控制器中放置「echo」指令,如果你在控制器上下文中,你應該在塊中創建一個函數來返回$ attributeOption,加載一個佈局並添加塊到控制器中,並調用模板中的函數來獲取和執行選項數組。 – dagfr 2013-03-01 18:50:02