ステラ・ルーのぬいばが欲しい nakajiman です。
Rails Console と同じように CakePHP 3 Console を使いたいんですが、CakePHP Console ってモデルを操作しても、Console にクエリログが表示されないんです。なんでー。ギャー。
そんなときは、Log をカスタマイズして、クエリロゴを標準エラーに出力すれば OK です。次の魔法の 4行を Console に貼り付けます。
1 2 3 4 | >>> use Cake\Log\Log; >>> Log::config( 'queries' , [ 'className' => 'Console' , 'stream' => 'php://stderr' , 'scopes' => [ 'queriesLog' ]]); >>> $cm = \Cake\Datasource\ConnectionManager::get( 'default' ); >>> $cm ->logQueries(true); |
そうすると、モデルを操作すると、次のように Console にクエリログが表示されるようになります。
1 2 3 4 | >>> use Cake\ORM\TableRegistry; >>> $User = TableRegistry::get( 'Users' ); >>> $User ->exists([ 'id' => 1]); 2017-07-11 11:43:44 Debug: duration=3 rows=1 SELECT 1 AS `existing` FROM users Users WHERE id = 1 LIMIT 1 |
なんて素敵なことでしょう~ (ミニーマウス風に)