管理グリッドをフィルタリングして特定の製品の販売履歴を表示しようとしましたが、名前:Magento:SQLSTATE [42S22]:列が見つかりません:1054 'where句'の 'billing_name'列が不明です
protected function _prepareCollection() {
$productId = $this->getProduct()->getId();
$ordersId = $this->getOrderIds($productId);
$collection = mage::getModel('sales/order')
->getCollection()
->addFieldToFilter('main_table.entity_id', array('in' => $ordersId))
->join('sales/order_address', '`sales/order_address`.entity_id=billing_address_id', array('billing_name' => "concat(firstname, ' ', lastname)"));
$this->setCollection($collection);
return parent::_prepareCollection();
}
そしてを課金名前のためのグリッド列を追加するには:
SQLSTATE[42S22]: Column not found: 1054 Unknown column 'billing_name' in 'where clause'
ここでは、私が使用しているものです
protected function _prepareColumns() {
$this->addColumn('billing_name', array(
'header' => Mage::helper('AdvancedStock')->__('Bill to Name'),
'index' => 'billing_name',
'sortable' => true
));
return parent::_prepareColumns();
}
この列は、製品を含む注文からすべての請求名を正しく返します。名前で列をフィルタリングできません。何か案は?
モデルに課金名を追加しましたが、データベースには追加しませんでしたか? 'sales_flat_order'(または' sales_flat_order_address')テーブルを見ると存在しますか? – CD001
@ CD001私はそれが 'sales_flat_order_address'にあると信じていますが、テーブルをチェックするためにphpMyAdminにアクセスすることはできません – AJ47