実行されたクエリをアプリケーション ログに記録して確認できます。設定ファイルには次のようなものがあります。
'components' => array(
'db'=>array(
'enableParamLogging' => true,
),
'log'=>array(
'class'=>'CLogRouter',
'routes'=>array(
array(
'class'=>'CFileLogRoute',
'levels'=>'trace,log',
'categories' => 'system.db.CDbCommand',
'logFile' => 'db.log',
),
),
),
);
場合によっては (テストの実行時など)、Yii::app()->log->processLogs(null);
これを機能させるためにプロセスの最後に呼び出す必要もあります。
もちろん、ログに記録されたメッセージで何か違うことを行う独自のログ ルートを作成することを妨げるものは何もありませんが、ログはリクエストの最後 (または を呼び出したときprocessLogs
) に処理されることに注意してください。何かを記録します。
ところで、クエリ内で動的入力を使用して、そのようなクエリを作成しないでください。代わりにバインド変数を使用します。
$criteria = new CDbCriteria();
$criteria->condition = 't.date BETWEEN :from_date AND :to_date';
$criteria->params = array(
':from_date' => $from_date,
':to_date' => $to_date,
);
$criteria->with = array('order');
$orders = ProductOrder::model()->findAll($criteria);