Risposte:
Se si desidera la query SQL da una raccolta, è necessario eseguirne il cast come stringa. Basta aggiungere (string)
al codice di registrazione precedentemente scritto.
Mage::log((string)$collection->getSelect(),null,'test.log',true);
Come mi ha spiegato Flyingmana, grazie a lui.
$collection->load($printQuery = false, $logQuery = false)
È importante registrare o stampare la query dopo il caricamento, perché nel beforeLoad
metodo si possono fare molte cose. Quindi la prima risposta:
Mage::log((string)$collection->getSelect(),null,'test.log',true);
dovrebbe essere usato DOPO che load
viene chiamato.
Passo 1:
$result_colletion = print_r($collection->getSelect());
Mage::log($$result_colletion, null, custom_collection.log,true);
Passaggio 2: Successivamente accedi alla sezione di amministrazione di Magento e abilita l'impostazione del registro. Vedi sotto .
Sistema> Configurazione> Sviluppatore> Impostazioni registro
Passaggio 3: Successivamente, consultare il file di registro "custom_collection.log" nella cartella var / log /.
Mage::log($collection->getSelect()->__toString(), Zend_Log::DEBUG, 'test.log', true);
Modificare:
Invece di usare null
(fallback a DEBUG
) come secondo parametro meglio usare uno di questi da 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