これは、次の質問からのフォローアップであり、現在部分的に回答されています: Adding custom columns in order grid (Magento 1.7.0.0)、これが問題です:
クエリを使用する場合:
$collection->getSelect()->join('magento_sales_flat_order_address', 'main_table.entity_id = magento_sales_flat_order_address.parent_id',array('telephone', 'email'));
$collection->getSelect()->group('main_table.entity_id')
の(グループで使用する正しいIDを指す)とともに、関数/app/code/core/Mage/Adminhtml/Block/Sales/Order/Grid.php
によって使用されるID_prepareMassAction()
は、結合されたテーブルのentity_id(私の場合、order_addressとしてmagento_sales_flat_order_address)であり、main_tableのentity_idではありません。する必要があります。
関数でこの値$this->setMassactionIdField('entity_id');
を変更_prepareMassAction()
して、使用する正しい ID を指すようにしましたが、かっこ内に何も入れていないかのようです。それを任意の値 (null または空以外) に変更すると、order_address テーブルの「entity_id」を指し続けます。次のように適切に設定されているかどうかも確認しました。
echo getMassactionIdField();
そして、出力は私が入力していたID setMassactionIdField()
(parent_idなど)だったので、適切に設定されていましたが、結果は明らかにentity_idを使用していました。したがって、これはバグであるか、ここで適切に行っていないことがあります。