Odpowiedzi:
Jeśli chcesz zapytanie SQL z kolekcji, musisz rzucić go jako ciąg. Po prostu dodaj (string)
do wcześniej napisanego kodu logowania.
Mage::log((string)$collection->getSelect(),null,'test.log',true);
Jak wyjaśnił mi Flyingmana, dzięki niemu.
$collection->load($printQuery = false, $logQuery = false)
Ważne jest, aby zalogować lub wydrukować zapytanie po załadowaniu, ponieważ w beforeLoad
metodzie można wiele rzeczy zrobić. Pierwsza odpowiedź:
Mage::log((string)$collection->getSelect(),null,'test.log',true);
powinien być użyty PO load
wywołaniu.
Krok 1:
$result_colletion = print_r($collection->getSelect());
Mage::log($$result_colletion, null, custom_collection.log,true);
Krok 2: Po tym zaloguj się do sekcji administracyjnej Magento i włącz logowanie ustawień. Patrz poniżej .
System> Konfiguracja> Deweloper> Ustawienia dziennika
Krok 3: Następnie zobacz plik dziennika „custom_collection.log” w folderze var / log /.
Mage::log($collection->getSelect()->__toString(), Zend_Log::DEBUG, 'test.log', true);
Edytować:
Zamiast używać null
(powrót do DEBUG
) jako drugiego parametru lepiej użyć jednego z tych z 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