debugkitを入れていればSQLは確認できますが、リダイレクト等が入っていて確認できない場合があります。 その対策です。
bootstrap.phpの変更
bootstrap.php
にこれを追加します:
Log::config('queries', [ 'className' => 'File', 'path' => LOGS, 'file' => 'queries.log', 'scopes' => ['queriesLog'] ]);
【重用】デバッグモードの無効化
デバッグモードを無効にします(なぜこれをやらねばならないのか、理解に苦しみますが…)
ロギング用のコードの追加
コントローラで:
use Cake\Datasource\ConnectionManager;
を追加し、かつ、ログしたいクエリの周りに:
$connection = ConnectionManager::get('default'); $connection->logQueries(true); $this->Orders->save($order); $connection->logQueries(false);
といった具合にlogQueriesを入れます。
Datasourcesについて
なお、app.php
のDatasourcesの中のlog
はfalse
のままでOKです。
注意点
UPDATE前と後の値に変更がない場合、UPDATEは発行されないようです(したがってログにも出ない)