magento - 在Magento中过滤网格集合时,左联接引发错误

标签 magento join collections filter error-handling

我需要使用自定义表将联接添加到我的订单集合中。
为此,我使用以下代码:

$collection = Mage::getResourceModel($this->_getCollectionClass());
    $collection->getSelect()
               ->joinLeft(array(
                  "t1" => 'fp_sellecrcommision_data'),                 
                  "main_table.increment_id = t1.store_order_id", 
                  array("commiisiion_status" => "t1.commiisiion_status")
               );
    $collection->addFieldToFilter("store_id",$storeid )
               ->addAttributeToFilter("status","complete");
哪个工作正常。但是当我应用过滤器时,它抛出以下错误
SQLSTATE[42S22]: Column not found: 1054 Unknown column 'commiisiion_status' in 'where clause', query was: SELECT COUNT(*) FROM `sales_flat_order_grid` AS `main_table` WHERE (`store_id` = '1') AND (`status` = 'complete') AND (`commiisiion_status` = '0')
这是我的自定义表的结构:
enter image description here
下面是我在网格中的自定义列:
$this->addColumn('commiisiion_status', array(
    'header' => Mage::helper('sellercommision')->__('Commision Status'),
    'index' => 'commiisiion_status',
    'type' => 'options',
    'options' => XYZ_Sellercommision_Block_Adminhtml_Sellercommision_Storeorders::commisionsStatusesArray(),                
));
我怎样才能解决这个问题?

最佳答案

嗨,我已经通过使用下面的_commissionFilterCallBack函数解决了此问题

    protected function _commissionFilterCallBack($collection, $column)
    {
    //Put your logic here..!!
    $value =  $column->getFilter()->getValue();
    $comission_paid_orders = array();

    $commissionstatus_model  = Mage::getModel("commissionstatus/commissionstatus")->getCollection();
    foreach($commissionstatus_model as $commissionstatus){
            $comission_paid_orders[] =  $commissionstatus['order_imcrement_id'];
        }
    if ($value=="pending") 
        {
            if(count($comission_paid_orders)==0){
                return $this;
                }
            else{
                $this->getCollection()->addAttributeToFilter("increment_id",array("nin"=>$comission_paid_orders));
                return $this;
            }
        }
    $this->getCollection()->getSelect()->where("t1.commission_status like ?", "%$value%");

        return $this;
    }

关于magento - 在Magento中过滤网格集合时,左联接引发错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40466078/

相关文章:

php - Magento 自定义模块观察者不工作

php - Magento CE 2.0 安装在大约 90% 时停止

Magento 1.6.2 删除 Paypal 订单状态

magento - 通过 local.xml 文件移除嵌套在 block 中的 block

mysql - 从数据库获取 "non-existing"值

mysql - Sql 将列序列化为一条记录以供搜索

Java:对列表列表进行排序

performance - ES:使用全局聚合的准联接查询与父子/嵌套查询相比如何?

java集合: get objects are modified,添加和删除?

java - 为什么 ConcurrentSkipListSet 升序迭代器 'faster' 而不是降序迭代器?