如何在自定义数据库中选择Magento中的单行以在块中显示?

时间:2012-09-24 18:30:24

标签: magento

我不想使用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。

2 个答案:

答案 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());