I have a custom grid with columns created by joining a flat table to the customer collection. Everything works fine except when i try to filter the list using any of the column added from the flat table.
In _prepareCollection()
$collection = Mage::getModel('customer/customer')->getCollection()
->addNameToSelect()
->addAttributeToSelect('email')
->addAttributeToSelect('created_at')
->addAttributeToSelect('group_id')
->joinAttribute('billing_country_id', 'customer_address/country_id', 'default_billing', null, 'left');
$collection->joinTable(array('up' => 'mymodule/userprofile'), 'mageuserid=entity_id', array('*'), null, 'left');
$collection->addAttributeToFilter('entity_id', array('in' => $record));
$collection->addFilterToMap("shoptitle", "up.shoptitle");
$collection->addFilterToMap("contactnumber", "up.contactnumber");
$this->setCollection($collection);
parent::_prepareCollection();
Added columns in _prepareColumns()
$this->addColumn('shoptitle', array(
'header' => Mage::helper('mymodule')->__('Shop Title'),
'index' => 'shoptitle',
'type' => 'text',
));
$this->addColumn('contactnumber', array(
'header' => Mage::helper('mymodule')->__('Telephone'),
'width' => '100',
'index' => 'contactnumber',
));
Here is my error log
exception 'Exception' with message 'Non Object found for attribute shoptitle' in C:\xampp\htdocs\mage_test\app\code\core\Mage\Eav\Model\Entity\Abstract.php:785
Stack trace:
#0 C:\xampp\htdocs\mage_test\app\code\core\Mage\Eav\Model\Entity\Collection\Abstract.php(1377): Mage_Eav_Model_Entity_Abstract->isAttributeStatic('shoptitle')
#1 C:\xampp\htdocs\mage_test\app\code\core\Mage\Eav\Model\Entity\Collection\Abstract.php(321): Mage_Eav_Model_Entity_Collection_Abstract->_getAttributeConditionSql('shoptitle', Array, 'inner')
#2 C:\xampp\htdocs\mage_test\app\code\core\Mage\Eav\Model\Entity\Collection\Abstract.php(341): Mage_Eav_Model_Entity_Collection_Abstract->addAttributeToFilter('shoptitle', Array)
#3 C:\xampp\htdocs\mage_test\app\code\core\Mage\Adminhtml\Block\Widget\Grid.php(472): Mage_Eav_Model_Entity_Collection_Abstract->addFieldToFilter('shoptitle', Array)
#4 C:\xampp\htdocs\mage_test\app\code\core\Mage\Adminhtml\Block\Widget\Grid.php(457): Mage_Adminhtml_Block_Widget_Grid->_addColumnFilterToCollection(Object(Mage_Adminhtml_Block_Widget_Grid_Column))
#5 C:\xampp\htdocs\mage_test\app\code\core\Mage\Adminhtml\Block\Widget\Grid.php(517): Mage_Adminhtml_Block_Widget_Grid->_setFilterValues(Array)
#6 C:\xampp\htdocs\mage_test\app\code\local\Test\Mymodule\Block\Adminhtml\Partners\Grid.php(52): Mage_Adminhtml_Block_Widget_Grid->_prepareCollection()
#7 C:\xampp\htdocs\mage_test\app\code\core\Mage\Adminhtml\Block\Widget\Grid.php(626): Test_Mymodule_Block_Adminhtml_Partners_Grid->_prepareCollection()
#8 C:\xampp\htdocs\mage_test\app\code\core\Mage\Adminhtml\Block\Widget\Grid.php(632): Mage_Adminhtml_Block_Widget_Grid->_prepareGrid()
#9 C:\xampp\htdocs\mage_test\app\code\core\Mage\Core\Block\Abstract.php(918): Mage_Adminhtml_Block_Widget_Grid->_beforeToHtml()
#10 C:\xampp\htdocs\mage_test\app\code\local\Test\Mymodule\controllers\Adminhtml\Mymodule\PartnersController.php(56): Mage_Core_Block_Abstract->toHtml()
#11 C:\xampp\htdocs\mage_test\app\code\core\Mage\Core\Controller\Varien\Action.php(418): Test_Mymodule_Adminhtml_Mymodule_PartnersController->gridAction()
#12 C:\xampp\htdocs\mage_test\app\code\core\Mage\Core\Controller\Varien\Router\Standard.php(254): Mage_Core_Controller_Varien_Action->dispatch('grid')
#13 C:\xampp\htdocs\mage_test\app\code\core\Mage\Core\Controller\Varien\Front.php(172): Mage_Core_Controller_Varien_Router_Standard->match(Object(Mage_Core_Controller_Request_Http))
#14 C:\xampp\htdocs\mage_test\app\code\core\Mage\Core\Model\App.php(365): Mage_Core_Controller_Varien_Front->dispatch()
#15 C:\xampp\htdocs\mage_test\app\Mage.php(684): Mage_Core_Model_App->run(Array)
#16 C:\xampp\htdocs\mage_test\index.php(83): Mage::run('', 'store')
#17 {main}