0

顧客の管理の管理エリア。

新しいカスタム列を追加しましたが、フィルタリングされず、asc / desc のいずれでもソートできません

これが私のコードです

protected function _prepareCollection()
{
$collection = Mage::getResourceModel(’customer/customer_collection’)
->addNameToSelect()
->addAttributeToSelect(’email’)
->addAttributeToSelect(’created_at’)
->addAttributeToSelect(’group_id’)
->joinAttribute(’billing_postcode’, ‘customer_address/postcode’, ‘default_billing’, null, ‘left’)
->joinAttribute(’billing_city’, ‘customer_address/city’, ‘default_billing’, null, ‘left’)
->joinAttribute(’billing_telephone’, ‘customer_address/telephone’, ‘default_billing’, null, ‘left’)
->joinAttribute(’billing_region’, ‘customer_address/region’, ‘default_billing’, null, ‘left’)
->joinAttribute(’billing_country_id’, ‘customer_address/country_id’, ‘default_billing’, null, ‘left’);


$collection->getSelect()->columns(array(’CustomerStatus’ => new Zend_Db_Expr ("(SELECT
CustomerStatusFROM users WHERE MagentoID =e.entity_id)")));

$this->setCollection($collection);

return parent::_prepareCollection();
}

さまざまなメソッドを試し、_addColumnFilterToCollection を追加しましたが、うまくいかないようです…</p>

    protected function _addColumnFilterToCollection($column)
        {


            if ($column->getId() == 'CustomerStatus' && $column->getFilter()->getValue()) {
            $val        = $column->getFilter()->getValue();


            $this->getCollection()->addFieldToFilter('CustomerStatus', array('like' => $val));

// $this->getCollection()->getSelect()->where('CustomerStatus= ?', $val);

        }

            return $this;



        }

次に、これが_preparecolumns関数内に列を追加した方法です

$this->addColumn('CustomerStatus', array(
         'header'    => Mage::helper('customer')->__('C Status'),
         'width'     => '100px',
        'index'     => 'CustomerStatus',
        'filter_index' => 'CustomerStatus'
    ));

何か案は?

4

1 に答える 1