Where can I catch a MethodNotAllowedHttpException
in Laravel 5+?
In Laravel 4 I was able to do this in start/global.php
.
Where can I catch a MethodNotAllowedHttpException
in Laravel 5+?
In Laravel 4 I was able to do this in start/global.php
.
// Exceptions/Handler.php
use Symfony\Component\HttpKernel\Exception\MethodNotAllowedHttpException;
public function render($request, \Exception $e)
{
if ($e instanceof MethodNotAllowedHttpException) {
// …
}
return parent::render($request, $e);
}
In Laravel 5.4
, I did it like this:
File location: app/Exceptions/Handler.php
Add this code at the top of the file:
use Symfony\Component\HttpKernel\Exception\MethodNotAllowedHttpException;
And modify the method code as belows:
/**
* Render an exception into an HTTP response.
*
* @param \Illuminate\Http\Request $request
* @param \Exception $exception
* @return \Illuminate\Http\Response
*/
public function render($request, Exception $exception)
{
if ($exception instanceof MethodNotAllowedHttpException)
{
return response()->json( [
'success' => 0,
'message' => 'Method is not allowed for the requested route',
], 405 );
}
return parent::render($request, $exception);
}
Don't forget to include:
use Symfony\Component\HttpKernel\Exception\MethodNotAllowedHttpException;
use this method it will work on any version of laravel
if ($exception instanceof MethodNotAllowedHttpException)
{
return redirect()->route('yourWishedRoute');
}