2012-07-13 11 views
8

Fatal error: Call to undefined method Desbest_Showdown_Model_Mysql4_Votes_Collection::addAttributeToSelect() in /home/desbest/public_html/clients/magentofull/app/code/local/Desbest/Showdown/controllers/IndexController.php on line 19Colección :: addAttributeToSelect() método definido en Magento

IndexController.php

public function voteAction(){ 
    $shake = Mage::getModel('showdown/votes') 
     ->getCollection() 
     ->addAttributeToSelect('*') 
     ; 
} 

===============

code/local/Desbest/Showdown/Model/Mysql4/Votes/Collection.php

<?php 
class Desbest_Showdown_Model_Mysql4_Votes_Collection extends Mage_Core_Model_Mysql4_Collection_Abstract 
{ 
    public function _construct() 
    { 
     parent::_construct(); 
     $this->_init('showdown/votes'); 
    } 
} 

Respuesta

37

addAttributeToSelect() está utilizando para EAV estilo colección modelo sólo (producto, cliente, etc.)

Para otros modelos que se pueden utilizar Mage_Core_Model_Resource_Db_Collection_Abstract::addFieldToSelect() método.

+3

Todo lo que tuve que hacer es cambiar 'addAttributeToSelect' por' addFieldToFilter' y 'addAttributeToFilter' por' addFieldToFilter'. – desbest

1

Añadir esto a su Colección.php

public function addAttributeToSort($attribute, $dir=’asc’) 
{ 
    if (!is_string($attribute)) { 
     return $this; 
    } 
    $this->setOrder($attribute, $dir); 
    return $this; 
} 

También podría intentar usar addFilter() o usar setOrder().

de recursos: This

+0

Pero quiero la función 'addAttributeToSelect'. – desbest

Cuestiones relacionadas