Как записать SQL-запрос коллекции?

9

Я хочу войти в SQL-запрос для пользовательской коллекции. Я попробовал следующий код. Но не сработало. Любые предложения будут оценены.

Mage::log($collection->getSelect(),null,'test.log',true);
Sukeshini
источник

Ответы:

10

Если вы хотите запрос SQL из коллекции, вам нужно привести его как строку. Просто добавьте (string)к ранее написанному коду регистрации.

Mage::log((string)$collection->getSelect(),null,'test.log',true);
Сандер Мангель
источник
12

Попробуйте, $Collection->printLogQuery(true);это напечатает запрос коллекции.

Mufaddal
источник
Большое спасибо. Ваш код печатает запрос к интерфейсу.
Sukeshini
2

Как объяснил мне Флайман, благодаря ему.

$collection->load($printQuery = false, $logQuery = false)

Важно зарегистрировать или распечатать запрос после загрузки, потому что в beforeLoadметоде можно многое сделать. Итак, первый ответ:

Mage::log((string)$collection->getSelect(),null,'test.log',true);

следует использовать ПОСЛЕ loadназывается.

Фабиан Блехшмидт
источник
Как получить текущее событие и распечатать в лог-файл в Magento 1.9
Gem
Я не понимаю вопрос. Какое событие?
Фабиан
2

Шаг 1:

$result_colletion = print_r($collection->getSelect());
Mage::log($$result_colletion, null, custom_collection.log,true);

Шаг 2: После этого войдите в раздел администрирования Magento и включите настройку журнала. Пожалуйста, смотрите ниже.

Система> Конфигурация> Разработчик> Настройки журнала

Шаг 3: После этого просмотрите файл журнала «custom_collection.log» в папке var / log /.

Dharmendra
источник
1
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
sv3n
источник