Отключите Query_Log() перед выполнением некоторых запросов в Laravel
Я занимаюсь разработкой веб-приложения на основе Laravel 5.6 . Есть много запросов к базе данных для выполнения.
В целях безопасности я пытаюсь сохранить все свои запросы в таблице базы данных в виде журнала запросов. У меня есть использование AppServiceProvider
поставщик услуг, чтобы сделать это. Теперь я хочу отключить Query_Log()
функция на некоторое время, которая также предотвращает сохранение конкретного запроса к базе данных. Когда я запускал приложение с приведенным выше кодом, оно работало при превышении максимального времени выполнения базы данных.
Может кто-нибудь подсказать мне, как я это делаю?
public function boot()
{
if(env('App_Debug')){
DB::listen(function($query){
//DB::connection()->disableQueryLog();
Query_Log::insert([
'query_string'=>$query->sql,
'user' => "Admin",
'created_at' =>Carbon::now()->toDateTimeString(),
]);
});
}
}
0 ответов
Вот как я исключаю слушателя. я не знаю, есть ли функция
DB::listen(function ($query) {
try {
//check if the query log is the excluded table
if (preg_match('(query_activities)', $query->sql) == 0) {
QueryActivity::query()->create([
'connection_name' => $query->connectionName,
'time_taken' => $query->time,
'query' => $query->query,
'bindings' => Utils::aesEncrypt(json_encode($query->bindings)),
]);
}
} catch (\Exception $exception) {
}
});