攔截線上 sql 異常報錯

蕭風發表於2020-04-29

背景:APP_DEBUG模式無效,laravel 沒有對線上的 sql 報錯進行攔截,為了系統的安全、穩定,為了使用者有更好的體驗,還是需要對 sql 報錯進行攔截的

1、在 App\Providers\AppServiceProviderboot

use Illuminate\Database\QueryException;

public function boot()
{
  if (!env('APP_DEBUG')) {
     \API::error(function (QueryException $exception) {
           httpErrorNotFound("親,伺服器異常");
      });
    }
}

獲取主要的報錯資訊,不顯示詳情裡面的 sql 報錯資訊如下:
Column not found: 1054 Unknown column ‘asdasd’ in ‘where clause’

攔截線上 sql 異常報錯

use Illuminate\Database\QueryException;

public function boot()
{
  if (!env('APP_DEBUG')) {
     \API::error(function (QueryException $exception) {
           httpErrorNotFound($exception->getPrevious()->getMessage());
      });
    }
}
本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章