Método inválido Custom_Abc_Model_Custom::addFieldToFilter Painel de administração do Magento CE 1.9.2
-
29-09-2020 - |
Pergunta
Olá, no meu arquivo de grade durante a filtragem da coleção, mas está apresentando erro.
Aqui está o código do meu arquivo de grade
protected function _prepareCollection() {
$custom_id = Mage::getSingleton('adminhtml/session')->getCustom()->getId();
$collection = Mage::getModel('custom_abc/custom')
->addFieldToFilter('custom_id',1)
->getCollection();
$adminStore = Mage_Core_Model_App::ADMIN_STORE_ID;
$store = $this->_getStore();
$this->setCollection($collection);
return parent::_prepareCollection();
}
Aqui está meu modelo
Modelo/Personalizado.php
class Custom_ABC_Model_Custom extends Mage_Core_Model_Abstract
{
public function _construct()
{
parent::_construct();
$this->_init('custom_abc/custom');
}
}
Modelo/Recurso/Custom.php
class Custom_ABC_Model_Resource_Custom extends Mage_Core_Model_Resource_Db_Abstract
{
public function _construct()
{
$this->_init('custom_abc/custom', 'custom_id');
}
}
Modelo/Recurso/Custom/Collection.php
class Custom_ABC_Model_Resource_Custom_Collection extends Mage_Core_Model_Resource_Db_Collection_Abstract{
protected function _construct()
{
parent::_construct();
$this->_init('custom_abc/custom');
}
}
Solução
Bem, você só pode aplicar o addFieldToFilter
depois de obter a coleção, em vez disso:
$collection = Mage::getModel('custom_abc/custom')
->addFieldToFilter('custom_id',1)
->getCollection();
Você deveria fazer:
$collection = Mage::getModel('custom_abc/custom')
->getCollection()
->addFieldToFilter('custom_id',1);
Além disso, uma sintaxe mais leve poderia ser:
$collection = Mage::getResourceModel('custom_abc/custom_collection')
->addFieldToFilter('custom_id',1);
Licenciado em: CC-BY-SA com atribuição
Não afiliado a magento.stackexchange