| Server IP : 54.94.228.101 / Your IP : 172.28.20.13 Web Server : Apache System : Linux ip-172-28-29-189 6.5.0-1014-aws #14~22.04.1-Ubuntu SMP Thu Feb 15 15:27:06 UTC 2024 x86_64 User : www-data ( 33) PHP Version : 7.2.34-43+ubuntu22.04.1+deb.sury.org+1 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals, MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /var/www/html/vinumday2_0/app/Exceptions/ |
Upload File : |
<?php
namespace App\Exceptions;
use Exception;
use Illuminate\Session\TokenMismatchException;
use Illuminate\Validation\ValidationException;
use Illuminate\Auth\Access\AuthorizationException;
use Illuminate\Database\Eloquent\ModelNotFoundException;
use Symfony\Component\HttpKernel\Exception\HttpException;
use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler;
class Handler extends ExceptionHandler
{
/**
* A list of the exception types that should not be reported.
*
* @var array
*/
protected $dontReport = [
AuthorizationException::class,
HttpException::class,
ModelNotFoundException::class,
TokenMismatchException::class,
ValidationException::class,
];
private $isJson = false;
private $statusCode = '500';
/**
* Report or log an exception.
*
* This is a great spot to send exceptions to Sentry, Bugsnag, etc.
*
* @param \Exception $e
* @return void
*/
public function report(Exception $e)
{
parent::report($e);
}
/**
* Render an exception into an HTTP response.
*
* @param \Illuminate\Http\Request $request
* @param \Exception $e
* @return \Illuminate\Http\Response
*/
public function render($request, Exception $e)
{
$this->isJson = ($request->ajax() || $request->wantsJson());
if ($this->isHttpException($e))
{
// Grab the HTTP status code from the Exception
$this->statusCode = $e->getStatusCode();
}
if($e instanceof ModelNotFoundException) {
$response = [
'view' => 'errors.404',
'error' => [
'code' => $e->errorInfo[1],
'message' => $e->getMessage(),
]
];
return $this->renderException ($response);
}
if($e instanceof DatabaseException) {
return 'Erro de banco';
}
if($e instanceof \Illuminate\Database\QueryException) {
$arrayError = DatabaseException::renderException($e);
$response = [
'success' => false,
'error' => $arrayError,
];
//echo 'teste';
return $this->renderException ($response);
}
return parent::render($request, $e);
}
public function renderException ($response) {
if ($this->isJson) {
return response()->json($response, $this->statusCode);
} else {
if (isset($response['view'])) {
return view($response['view']);
} else {
//print_r($response);die();
\Session::flash('type', 'danger');
\Session::flash('message', $response['error']['message']);
return redirect()->back()->withInput();
//return view('errors.500', $response);
}
}
}
}