我正在使用监听器进行查询,正如许多人在stackoverflow上所建议的那样。这是语法
Event::listen('illuminate.query', function($query)
{
dd($query);
});
但我收到以下错误
Call to undefined method Illuminate\Database\Query\Builder::listen()
我还附上了错误的屏幕截图。
有谁知道出了什么问题?它被弃用了吗?
答案 0 :(得分:0)
如果您没有其他名称为Event
的模型或外墙,则应将其放在例如app/start/local.php
内,并且应该开箱即用:
我这样定义了:
Event::listen(
'illuminate.query',
function ($sql, $bindings, $time) {
$sql = str_replace(array('%', '?'), array('%%', "'%s'"), $sql);
$full_sql = vsprintf($sql, $bindings);
file_put_contents(storage_path() . DIRECTORY_SEPARATOR . 'logs'
. DIRECTORY_SEPARATOR . 'sql_log.sql', $full_sql . ";\n",
FILE_APPEND);
}
);
并将所有查询记录到文件中。