Laravel侦听查询错误

时间:2014-10-03 09:43:12

标签: php laravel

我正在使用监听器进行查询,正如许多人在stackoverflow上所建议的那样。这是语法

Event::listen('illuminate.query', function($query)
{
    dd($query);
});

但我收到以下错误

Call to undefined method Illuminate\Database\Query\Builder::listen()

我还附上了错误的屏幕截图。

enter image description here

有谁知道出了什么问题?它被弃用了吗?

1 个答案:

答案 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);
    }
);

并将所有查询记录到文件中。