0

我不想使用foreach循环遍历多行数组,因为我计划只显示一行并使用变量。我在网上找不到这方面的信息。

什么不起作用

    $param = $this->getRequest()->getParam('manufacturer');
    $extrabrand = Mage::getModel('brands/brands')->getCollection();
    $extrabrand->addFieldToFilter('attributelabelid', $param);
    //$extrabrand->setAttributelabelid($param);
    $extrabrand->load();

致命错误:在第 20 行的 /home/desbest/public_html/clients/magentofull/app/design/frontend/default/default/template/Desbest_Brands/brand_info.phtml 中调用未定义的方法 Desbest_Brands_Model_Mysql4_Brands_Collection::getDescription()

另外没有EAV。

4

2 回答 2

11

如果没有看到其中的代码,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());
于 2012-09-24T18:37:19.067 回答
2

如果您只需要从集合中获取 1 个元素(第一个),请使用current()函数:

$param = $this->getRequest()->getParam('manufacturer');
$extrabrandCollection = Mage::getModel('brands/brands')->getCollection()
    ->addFieldToFilter('attributelabelid', $param);

$extrabrand = current($extrabrandCollection->getItems());
于 2012-09-24T18:43:31.733 回答