Il est getSelect()->__toString();
disponible dans Magento 1 pour la requête d'impression de la collection. comme l'exemple ci-dessous
$products = Mage::getModel(‘catalog/product’)
->addAttributeToFilter(‘status’, array(‘eq’ => 1));
echo $products->getSelect()->__toString();
Existe-t-il une méthode disponible dans magento 2? J'ai trouvé cela ->printLogQuery(true);
mais ne fonctionne pas pour moi.
Mise à jour: ci-dessous est le code. J'essaie d'obtenir des produits à succès. son travail parfait mais je veux imprimer la requête de débogage.
$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
avecRéponses:
Les réponses ci-dessus sont correctes, mais certaines collections assemblent uniquement la sélection dans la
_beforeLoad()
méthode, par opposition à l'initialisation dans le constructeur. Cela signifie que vous obtiendrez une chaîne vide si vous essayez de générer la requête SQL avant de charger la collection.Un exemple de ceci est
\Magento\Sales\Model\ResourceModel\Report\Bestsellers\Collection
. Donc, si vous obtenez des résultats inattendus, chargez la collection (cela créera la requête de sélection finale), puis générez la requête.la source
Vous pouvez utiliser la même chose que magento 1 pour imprimer une requête dans magento 2.
la source
Vous pouvez utiliser la fonction __toString () pour imprimer la requête dans Magento 2
la source
Ou utilisez simplement
la source
J'espère que vous souhaitez imprimer la requête pour identifier le problème du nombre de tailles de get incorrect. chaque fois que vous utilisez le groupe par requête, alors appelez la fonction getSize signifie qu'elle donnera les premières données d'enregistrement donc elle donnera un nombre incorrect. pour cela avant d'incorporer le groupe par requête. vous devez appeler la fonction getSize. il sera donc défini avant d'exécuter le groupe par requête.
la source
var_dump ($ collection-> getSelect () -> __ toString ());
la source