2015-05-16 11 views

risposta

14
// Exceptions/Handler.php 

use Symfony\Component\HttpKernel\Exception\MethodNotAllowedHttpException; 

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

    return parent::render($request, $e); 
} 
+0

Se hai un problema nell'usare 'code'instanceof'code' con php 7.1 puoi usare' code'is_a() 'code'. Se qualcuno ha una spiegazione del perché non ho ottenuto 'code'true'code' con' code'instanceof'code'? Grazie. –

3

In Laravel 5.4, l'ho fatto in questo modo:

posizione File: app/eccezioni/Handler.php

Aggiungere questo codice all'inizio del file:

use Symfony\Component\HttpKernel\Exception\MethodNotAllowedHttpException; 

e modificare il codice del metodo come 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); 
    }