Há getSelect()->__toString();
está disponível em Magento 1 para consulta de impressão da coleção. como exemplo abaixo
$products = Mage::getModel(‘catalog/product’)
->addAttributeToFilter(‘status’, array(‘eq’ => 1));
echo $products->getSelect()->__toString();
Existe algum método disponível no magento 2? Eu encontrei isso, ->printLogQuery(true);
mas não funciona para mim.
Atualização: abaixo está o código. Estou tentando obter produtos mais vendidos. seu trabalho perfeito, mas eu quero imprimir consulta para depuração.
$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());
magento2
collection
query
Kul
fonte
fonte
printLogQuery
comRespostas:
As respostas acima estão corretas, mas algumas coleções montam apenas a seleção no
_beforeLoad()
método, em vez de inicializá-la no construtor. Isso significa que você obterá uma sequência vazia se tentar gerar a consulta SQL antes de carregar a coleção.Um exemplo disso é
\Magento\Sales\Model\ResourceModel\Report\Bestsellers\Collection
. Portanto, se você estiver obtendo resultados inesperados, carregue a coleção (isso criará a consulta de seleção final) e, em seguida, produza a consulta.fonte
Você pode usar o mesmo que o magento 1 para imprimir a consulta no magento 2.
fonte
Você pode usar a função __toString () para imprimir consultas no Magento 2
fonte
Ou simplesmente use
fonte