2010-12-14 9 views
1

コントローラの特定のモデルによって実行されたSQLクエリをテーブルに記録する動作を作成しています。特定のファインダメソッド($ this-> MyModel-> find( 'all')のような)に対して実行されたSQLクエリを返したいメソッドを探しています。ベーカリーで$ this-> MyModel-> find( 'sql')、しかし私のために働かない。誰かが私はこれをどのように達成できるのか知っていますか?事前にcakephpファインダメソッドからsqlクエリを取得します

おかげで

答えて

1

あなたのapp_model.phpでこの機能を置くことができます()の$ this - > getLastQueries()

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

    return $logs; 
} 

し、任意のモデルから、それを呼び出すかコントローラ(の$ this - >モデル - > getLastQueries())を使用して取得します。

+0

getLastQueries()に続く$ this-> MyModel-> find( 'all')を試していますが、空の配列があります – rizidoro

+0

デバッグ設定> 1(2または3) – elboletaire

0

の$ this - >モデル - >( 'SQL')はケーキでネイティブにサポートされていません見つけます。新しいDBOドライバをインストールし、AppModelでfind( 'sql')メソッドのサポートを追加するには、ベーカリーの記事の残りの手順に従わなければなりません。一度これを行うと、それはあなたが探しているものを得ることができるはずです。

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

関連する問題