Рекомендуемый способ
Стандартный регистратор в Symfony будет рекомендуемый метод:
изнутри действия:
$this->logMessage('executed SQL: '.$sql);
внутри модели (или в другом месте):
sfContext::getInstance()->getLogger()->info('executed SQL: '.$sql);
T методы hese будут вставлять ваши SQL-запросы на вкладку «logs & msgs» на панели инструментов отладки в правильной позиции в цепочке выполнения.
Однако, если вы просто хотите, чтобы увидеть запросы на верхней на вкладке «журналов & MSGS» и не нужно их хранить в постоянном журнале, вы можете использовать вместо $this->debugMessage($sql);
, что также означало бы, что вы могли бы видеть запросы вместе, а не искать их через цепочку выполнения журнала.
Потенциально предпочтительный способ
Я подозреваю, что вы можете эти SQL запросы появляются на вкладке «DB» вместо этого. Это не поддерживается напрямую Symfony, но вы можете «взломать» это решение вместо:
внутри действия:
$this->logMessage(sprintf("{sfCreole} executeQuery(): [x.xx ms] %s", $sql));
внутри модели:
sfContext::getInstance()->getLogger()->info(sprintf("{sfCreole} executeQuery(): [x.xx ms] %s", $sql));
Это имитирует поведение опции debug в symfony для регистрации SQL-запросов и, следовательно, будет вытеснять ваш пользовательский SQL-запрос на вкладку «DB» на панели инструментов отладки. Я оставляю вариант времени [x.xx ms] до вас, чтобы реализовать, если вы этого хотите :)