我不想使用foreach
循环遍历多行数组,因为我计划仅显示一个行并使用变量。我在网上找不到这方面的信息。
什么行不通
$param = $this->getRequest()->getParam('manufacturer');
$extrabrand = Mage::getModel('brands/brands')->getCollection();
$extrabrand->addFieldToFilter('attributelabelid', $param);
//$extrabrand->setAttributelabelid($param);
$extrabrand->load();
致命错误:调用未定义的方法 Desbest_Brands_Model_Mysql4_Brands_Collection :: getDescription()in /home/desbest/public_html/clients/magentofull/app/design/frontend/default/default/template/Desbest_Brands/brand_info.phtml 第20行
另外没有EAV。
答案 0 :(得分:10)
如果没有看到brand_info.phtml
中的代码,很难说出问题是什么,但我猜你是在使用$extrabrand
中的集合,就好像它是一个模型一样。试试这个
//get the parameter from the request
$param = $this->getRequest()->getParam('manufacturer');
//instantiate the brand/brand model, and use
//its `getCollection` method to return a collection
//object
$collection = Mage::getModel('brands/brands')->getCollection();
//add the paramater as a filter
$collection->addFieldToFilter('attributelabelid', $param);
//get the first item of the collection (load will be called automatically)
$extrabrand = $collection->getFirstItem();
//look at the data in the first item
var_dump($extrabrand->getData());
答案 1 :(得分:2)
如果您只需要从集合中获取1个元素(第一个),请使用current()
函数:
$param = $this->getRequest()->getParam('manufacturer');
$extrabrandCollection = Mage::getModel('brands/brands')->getCollection()
->addFieldToFilter('attributelabelid', $param);
$extrabrand = current($extrabrandCollection->getItems());