我在管理員中創建了一個股票報告,並讓所有工作都到目前爲止,除了我似乎無法對聯接列進行篩選。篩選加入的列
我已加入股票信息,使用以下來獲取我的收藏。
$collection = Mage::getModel('catalog/product')->getCollection()
->addAttributeToSelect('name')
->addAttributeToSelect('sku')
->addAttributeToSelect('price')
->setStoreId($storeId);
$collection->addFieldToFilter('type_id', 'simple');
// Add on the stock qty information
$collection->getSelect()->join(array('stock'=>'ccmg_cataloginventory_stock_item'), 'e.entity_id = stock.item_id', array('stock.qty'));
這導致它顯示,但不能篩選或排序列。我假設因爲這些選項沒有被傳遞迴聯接。但是,可以對其他列進行排序和過濾,並將匹配的數據撤回並顯示。
我一直在尋找,但大多數帖子都是在2008年的Magento論壇上,我使用的是1.6!任何指針都會很棒!
我無法驗證,如果這個工程因爲我不再一次在這個項目上工作。 – 2013-04-08 09:48:46
它的作品,但由於我沒有擴展Mage_Core_Model_Resource_Db_Collection_Abstract'_map ['fields']'是私人/保護。 addFilterToMap做了訣竅。 '$ collection-> addFilterToMap('ihe_name','ihe.name');' – 2013-07-23 08:09:31
'''addFieldToMap'''實際上是正確的方法。 '''這個 - > _ map ['fields']'''實際上覆蓋了退出的'''_map'''數組,所以如果我們有多於一個的列映射就變得很麻煩。 – kiatng 2015-03-30 03:01:22