Réponses:
Si vous voulez la requête SQL d'une collection, vous devez la convertir en chaîne. Ajoutez simplement (string)
à votre code d'enregistrement précédemment écrit.
Mage::log((string)$collection->getSelect(),null,'test.log',true);
Comme Flyingmana me l'a expliqué, merci à lui.
$collection->load($printQuery = false, $logQuery = false)
Il est important de consigner ou d'imprimer la requête après le chargement, car dans la beforeLoad
méthode, beaucoup de choses peuvent être faites. Donc la première réponse:
Mage::log((string)$collection->getSelect(),null,'test.log',true);
doit être utilisé APRÈS avoir load
été appelé.
Étape 1:
$result_colletion = print_r($collection->getSelect());
Mage::log($$result_colletion, null, custom_collection.log,true);
Étape 2: Après cette connexion à la section d'administration de Magento et activez le paramètre de connexion. Veuillez voir ci-dessous.
Système> Configuration> Développeur> Paramètres de journal
Étape 3: Après cela, consultez le fichier journal «custom_collection.log» dans le dossier var / log /.
Mage::log($collection->getSelect()->__toString(), Zend_Log::DEBUG, 'test.log', true);
Éditer:
Au lieu d'utiliser null
(repli vers DEBUG
) comme deuxième paramètre, mieux utiliser l'un d'entre eux à partir de Zend_Log
:
const EMERG = 0; // Emergency: system is unusable
const ALERT = 1; // Alert: action must be taken immediately
const CRIT = 2; // Critical: critical conditions
const ERR = 3; // Error: error conditions
const WARN = 4; // Warning: warning conditions
const NOTICE = 5; // Notice: normal but significant condition
const INFO = 6; // Informational: informational messages
const DEBUG = 7; // Debug: debug messages