Ich habe lange versucht, den Produktnamen basierend auf SKU auf benutzerdefinierten Raster des benutzerdefinierten Moduls zu erhalten. Es ist mir gelungen, den Produktnamen im Grid anzuzeigen.Produkt Name nicht in benutzerdefinierten Raster auf Filtersuche in Magento
unten ist der folgende Code ...
<?php
protected function _prepareCollection()
{
$collection = Mage::getModel('questionanswer/answer')->getCollection();
// $collection_join = Mage::getModel('questionanswer/answer')->getCollection()
// ->join(
// 'questionanswer/question',
// '`questionanswer/question`.question_id=`main_table`.question_id'
// ,array('question')
// )
// ->join(
// 'catalog/product',
// '`catalog/product`.entity_id=`main_table`.product_id'
// ,array('sku')
// );
$entityTypeId = Mage::getModel('eav/entity')
->setType('catalog_product')
->getTypeId();
$prodNameAttrId = Mage::getModel('eav/entity_attribute')
->loadByCode($entityTypeId, 'name')
->getAttributeId();
$collection->getSelect()
->joinLeft(
array('prod' => 'catalog_product_entity'),
'prod.entity_id = main_table.product_id',
array('sku')
)
->joinLeft(
array('cpev' => 'catalog_product_entity_varchar'),
'cpev.entity_id=prod.entity_id AND cpev.attribute_id='.$prodNameAttrId.'',
array('name' => 'value')
)->joinLeft(
array('que'=>'questionanswer_question'),
'que.question_id = main_table.question_id',
array('question')
);
$this->setCollection($collection);
return parent::_prepareCollection();
}
?>
Aber whernever ich versuche, zu filtern, den Produktnamen suchen es mir die folgenden Fehler geben ..
a:5:{i:0;s:413:"SQLSTATE[42S22]: Column not found: 1054 Unknown column 'name' in 'where clause', query was: SELECT COUNT(*) FROM `questionanswer_question` AS `main_table`
LEFT JOIN `catalog_product_entity` AS `prod` ON prod.entity_id = main_table.product_id
LEFT JOIN `catalog_product_entity_varchar` AS `cpev` ON cpev.entity_id=prod.entity_id AND cpev.attribute_id=71 WHERE (`name` LIKE '%hp%') AND (`status` LIKE '%pending%')";i:1;s:6069:"#0 /home/vhost/_default/magento1.9.2/lib/Varien/Db/Statement/Pdo/Mysql.php(110): Zend_Db_Statement_Pdo->_execute(Array)
#1 /home/vhost/_default/magento1.9.2/app/code/core/Zend/Db/Statement.php(291): Varien_Db_Statement_Pdo_Mysql->_execute(Array)
I bin mir bewusst, dass es nach dem Spaltennamen sucht, der nicht existiert..aber wo soll ich mich ändern ...
Die Filtersuche mit allen anderen Spalten sehr gut funktioniert ...