背景:APP_DEBUG模式無效,laravel 沒有對線上的 sql 報錯進行攔截,為了系統的安全、穩定,為了使用者有更好的體驗,還是需要對 sql 報錯進行攔截的
1、在 App\Providers\AppServiceProvider
的 boot
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’
use Illuminate\Database\QueryException;
public function boot()
{
if (!env('APP_DEBUG')) {
\API::error(function (QueryException $exception) {
httpErrorNotFound($exception->getPrevious()->getMessage());
});
}
}
本作品採用《CC 協議》,轉載必須註明作者和本文連結