【发布时间】:2015-04-30 14:15:06
【问题描述】:
我有一个 phpunit 测试,它会做一些查询,然后:
$results = $thingy::where("finder_id", "=", "37");
$queries = DB::getQueryLog();
dd($queries);
但是 $queries 总是返回一个空数组
Config::get('app.debug') 为真。
我试过了:
DB::enableQueryLog()
DB::connection()->enableQueryLog()
没有运气。我也尝试过各种事件监听器,例如:
Event::listen("illuminate.query", function($query, $bindings, $time, $name){
\Log::sql($query."\n");
\Log::sql(json_encode($bindings)."\n");
});
还有什么可能导致这种情况?
编辑:为了消除 PHPUnit 的原因,我使用已知的工作模型设置了一个测试路线
Route::get('fndr',function() {
$customer = new Customer;
$results = $customer->first();
var_dump($results->NAME);
$queries = DB::getQueryLog();
dd($queries);
});
$queries 仍然是空的。
【问题讨论】:
-
日志记录发生在
Illuminate\Database\Connection类中。在该类的run方法中,调用了logQuery方法。尝试确定日志记录是否实际被正确调用和执行。您的代码在其他方面是正确的。
标签: laravel-4 phpunit eloquent