web-dev-qa-db-ja.com

Laravel 5-MethodNotAllowedHttpExceptionを処理するにはどうすればよいですか?

Laravel 5+でMethodNotAllowedHttpExceptionをどこでキャッチできますか?

Laravel 4ではstart/global.phpでこれを行うことができました。

13
Salal Aslam
// Exceptions/Handler.php

use Symfony\Component\HttpKernel\Exception\MethodNotAllowedHttpException;

public function render($request, \Exception $e)
{
    if ($e instanceof MethodNotAllowedHttpException) {
        // …
    }

    return parent::render($request, $e);
}
27
Limon Monte

Laravel 5.4、私はこのようにしました:

ファイルの場所:app/Exceptions/Handler.php

ファイルの先頭に次のコードを追加します。

use Symfony\Component\HttpKernel\Exception\MethodNotAllowedHttpException;

そして、以下のようにメソッドコードを変更します。

/**
     * 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);
    }
13
Rahul Gupta

以下を含めることを忘れないでください:

use Symfony\Component\HttpKernel\Exception\MethodNotAllowedHttpException;

この方法を使用すると、laravelのすべてのバージョンで機能します

if ($exception instanceof MethodNotAllowedHttpException) 
{
    return redirect()->route('yourWishedRoute');
}
0
Azeem Ghafoor