sql >> データベース >  >> RDS >> Mysql

SalesOrderGridフィールドでの列エイリアスの使用

    この最初のコードを試してみましょう

    public function setCollection($collection){
        parent::setCollection($collection);
        $collection->getSelect()->join(
            array('address_shipping' => $collection->getTable("sales/order_address")),
            'main_table.entity_id = address_shipping.parent_id AND address_shipping.address_type = "shipping"',
            array('address_shipping.postcode as shippingpostcode')
        );
    
        $collection->getSelect()->join(
            array('address_billing' => $collection->getTable("sales/order_address")),
            'main_table.entity_id = address_billing.parent_id AND address_billing.address_type = "billing"',
            array('address_billing.postcode as billingpostcode')
        );
    }
    

    2番目の_prepareColumns() ここにあります

    protected function _prepareColumns(){
         $this->addColumn('shippingpostcode', array(
            'header' => Mage::helper('sales')->__('Shipping Postcode'),
            'index' => 'shippingpostcode',
            'filter_index' => 'address_shipping.postcode'
         ));
    
        $this->addColumn('billingpostcode', array(
            'header' => Mage::helper('sales')->__('Billing Postcode'),
            'index' => 'billingpostcode',
            'filter_index' => 'address_billing.postcode'  
        ));
    
    return parent::_prepareColumns();
    
    }
    

    'filter_index'について詳しく知りたい場合 、これにコメントイン/コメントアウトしてから、グリッドで郵便番号列を並べ替えてみてください。異なる結果が表示されます。 filter_indexを削除した場合 、並べ替えのエラー。



    1. 複数のプリペアドステートメントの1つが失敗した場合は、停止して元に戻します

    2. MySQL:EAVに変換する方法は?

    3. LaravelでTEMPORARYテーブルを作成する方法

    4. MySQLでの日付の解析