Ada getSelect()->__toString();
tersedia di Magento 1 untuk kueri cetak koleksi. seperti contoh di bawah ini
$products = Mage::getModel(‘catalog/product’)
->addAttributeToFilter(‘status’, array(‘eq’ => 1));
echo $products->getSelect()->__toString();
Apakah ada metode yang tersedia di magento 2? Saya telah menemukan ini ->printLogQuery(true);
tetapi tidak berhasil untuk saya.
Pembaruan: di bawah ini adalah kode. Saya mencoba mendapatkan produk terlaris. kerjanya sempurna tetapi saya ingin mencetak permintaan untuk debug.
$this->_collection->getSelect()
->joinLeft(
'sales_order_item',
'e.entity_id = sales_order_item.product_id',
array('qty_ordered'=>'SUM(sales_order_item.qty_ordered)'))
->group('e.entity_id')
->order('qty_ordered '.$this->getCurrentDirectionReverse());
printLogQuery
denganJawaban:
Jawaban di atas benar, tetapi beberapa koleksi hanya mengumpulkan pilih dalam
_beforeLoad()
metode, yang bertentangan dengan inisialisasi dalam konstruktor. Ini berarti Anda akan mendapatkan string kosong jika Anda mencoba menampilkan kueri SQL sebelum memuat koleksi.Contohnya adalah
\Magento\Sales\Model\ResourceModel\Report\Bestsellers\Collection
. Jadi, jika Anda mendapatkan hasil yang tidak terduga, muat koleksi (ini akan membangun kueri pemilihan akhir) dan kemudian menampilkan kueri.sumber
Anda dapat menggunakan yang sama dengan magento 1 untuk mencetak kueri di magento 2.
sumber
Anda dapat menggunakan fungsi __toString () untuk mencetak kueri di Magento 2
sumber
Atau, cukup gunakan
sumber