Saya melakukan yang berikut untuk mendapatkan beberapa pesanan dari sistem untuk ekspor:
$orders = Mage::getModel('sales/order')->getCollection()
->addFieldToFilter('status', $statusToExport)
->addFieldToFilter('store_id', $this->processingStoreId)
->addFieldToFilter('updated_at', array('gteq' => date('Y-m-d H:i:s', $lastSyncTime)));
Saya perlu menambahkan sesuatu yang tidak diekspor jika pesanan entity_id
ada di tabel khusus yang saya miliki. Jika saya menggunakan SQL, saya akan melakukan:
left join myTable as mt on main_table.entity_id = mt.entity_id
where mt.entity_id is null
Tetapi saya tidak yakin bagaimana memodifikasi kueri koleksi untuk melakukan hal serupa.
Catatan: Saya sudah mencoba
$orders = $orders->getSelect()
->joinLeft(
array("t1" => $myTable),
"main_table.entity_id = t1.entity_id",
array("admin_field_id" => "t1.id")
)
->where("t1.id is null")
tapi ini mengubahnya jadi permintaan dan saya ingin koleksi penjualan / pesanan dikembalikan.
Saya merasa saya kehilangan sesuatu yang sederhana ...
EDIT
Oke, saya sudah mencoba ini:
$orders->getSelect()
->joinLeft(
array("t1" => $myTable),
"main_table.entity_id = t1.entity_id",
array("admin_field_id" => "t1.id")
)
->where("t1.id is null");
Ketika saya menggema (string)$orders->getSelect()
itu mengembalikan permintaan saya harapkan dan tidak mengembalikan hasil ketika saya menjalankannya. $orders
Namun, masih mengandung item. Saya pikir gabung ini dimaksudkan untuk memodifikasi koleksi pada saat ini?
$orders->getSelect() ->joinLeft(array("t1" => $myTable), "main_table.entity_id = t1.entity_id", array("admin_field_id" => "t1.id")) ->where("t1.id is null")
mengecualikan item dari daftar saya saat ini?