Ответы:
Если вы хотите запрос SQL из коллекции, вам нужно привести его как строку. Просто добавьте (string)
к ранее написанному коду регистрации.
Mage::log((string)$collection->getSelect(),null,'test.log',true);
Как объяснил мне Флайман, благодаря ему.
$collection->load($printQuery = false, $logQuery = false)
Важно зарегистрировать или распечатать запрос после загрузки, потому что в beforeLoad
методе можно многое сделать. Итак, первый ответ:
Mage::log((string)$collection->getSelect(),null,'test.log',true);
следует использовать ПОСЛЕ load
называется.
Шаг 1:
$result_colletion = print_r($collection->getSelect());
Mage::log($$result_colletion, null, custom_collection.log,true);
Шаг 2: После этого войдите в раздел администрирования Magento и включите настройку журнала. Пожалуйста, смотрите ниже.
Система> Конфигурация> Разработчик> Настройки журнала
Шаг 3: После этого просмотрите файл журнала «custom_collection.log» в папке var / log /.
Mage::log($collection->getSelect()->__toString(), Zend_Log::DEBUG, 'test.log', true);
Редактировать:
Вместо использования null
(отступления DEBUG
) в качестве второго параметра лучше использовать один из них из 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