<?phpnamespaceApp\Models\Database;useIlluminate\Database\Eloquent\Builder;useIlluminate\Database\Eloquent\Collection;useIlluminate\Support\Facades\Log;useIlluminate\Support\Str;classMysqlCustomBuilderextendsBuilder{publicfunctionget($columns=['*']){try{returnparent::get($columns);}catch(\Exception$e){// 根据 laravel 重连的错误码
$message=$e->getMessage();if(Str::contains($message,['server has gone away','no connection to the server','Lost connection','is dead or not enabled','Error while sending','decryption failed or bad record mac','server closed the connection unexpectedly','SSL connection has been closed unexpectedly','Error writing data to the connection','Resource deadlock avoided',])){// 记录日志, 通知xxx
// Log::error($e);
// 强制返回空集合
returnCollection::make();}// 如果不在处理的范围内, 继续抛出异常
throw$e;}}}