Як увійти до SQL запиту колекції?


9

Я хочу занести запит SQL для спеціальної колекції. Я спробував наступний код. Але не вийшло. Будь-які пропозиції будуть вдячні.

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

Відповіді:


10

Якщо ви хочете, щоб SQL-запит із колекції був потрібний, він повинен бути переданий як рядок. Просто додайте (string)до свого раніше написаного коду реєстрації.

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

12

Спробуйте $Collection->printLogQuery(true);це надрукувати запит колекції.


Дуже дякую. Ваш код друкує запит до інтерфейсу.
Сукешині

2

Як мені пояснив Flyingmana, завдяки йому.

$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 / folder.


1
Mage::log($collection->getSelect()->__toString(), Zend_Log::DEBUG, 'test.log', true);

Редагувати:

Замість використання null(backback to 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
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.