2012-07-13 19 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 19Collection :: addAttributeToSelect() metodo non definito in 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'); 
    } 
} 

risposta

37

addAttributeToSelect() sta usando per la raccolta EAV stile solo modello (prodotto, cliente, ecc)

Per gli altri modelli è possibile utilizzare Mage_Core_Model_Resource_Db_Collection_Abstract::addFieldToSelect() metodo.

+3

Tutto quello che dovevo fare è cambiare 'addAttributeToSelect' in' addFieldToFilter' e 'addAttributeToFilter' in' addFieldToFilter'. – desbest

1

Aggiungi questo alla tua collezione.php

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

Si potrebbe anche provare a utilizzare addFilter() o utilizzando setOrder().

risorse: This

+0

Ma voglio la funzione 'addAttributeToSelect'. – desbest