получить SQL-запрос из метода поиска CakePHP - PullRequest
1 голос
/ 14 декабря 2010

Я создаю поведение, которое регистрирует в таблице SQL-запрос, выполняемый определенной моделью в контроллере. В поисках метода для возврата мне SQL-запроса, выполняемого для определенного метода поиска (например, $ this-> MyModel-> find ('all')), я обнаружил в пекарне, что могу использовать $ this-> MyModel-> find ( 'sql'), но у меня не работает. Кто-то знает, как мне этого добиться?

Заранее спасибо

Ответы [ 2 ]

1 голос
/ 15 декабря 2010

Вы можете поместить эту функцию в ваш app_model.php:

function getLastQueries()
{
    $dbo = $this->getDatasource();
    $logs = $dbo->_queriesLog;

    return $logs;
}

И вызовите его из любой модели ($ this-> getLastQueries ()) или контроллера ($ this-> Model-> getLastQueries ()), чтобы получить их.

0 голосов
/ 14 декабря 2010

$ this-> Model-> find ('sql') изначально не поддерживается Cake.Чтобы установить новый драйвер DBO и добавить поддержку метода find ('sql') в свою AppModel, вы должны следовать остальным инструкциям в статье о Bakery.Как только вы это сделаете, он сможет получить то, что вы ищете.

http://bakery.cakephp.org/articles/grant_cox/2008/06/23/get-the-find-query-sql-rather-than-query-result

...