2017-08-03 1 views

Antwort

1

Ja Sie Ihren Routenparameter von Middleware erhalten.

In Middleware können Sie wie diese „Objekt abgestimmte Route“ erhalten:

class MyMiddleware 
{ 
    /** 
    * Handle an incoming request. 
    * 
    * @param \Illuminate\Http\Request $request 
    * @param \Closure $next 
    * @return mixed 
    */ 
    public function handle($request, Closure $next) 
    { 
     $matchedRouteObject = $request->route(); 
     $next($request); 
    } 
} 

Siehe print_r($request->route()) gibt es eine Eigenschaft, die Aktion in dieser Route Objekt mit dem Namen. Aktionseigenschaft hat alle Parameter der übereinstimmenden Route.

routes/web.php : 

Route::get('tools/languages/{page?}', [ 
    'uses' => '[email protected]_languages', 
    'middleware' => 'App\Http\Middleware\MyMiddleware', 
    'cache' => 'value' 
]); 

app/Http/Middleware/MyMiddleware.php:

namespace App\Http\Middleware; 

use Closure; 
use Illuminate\Http\Response; 

class MyMiddleware 
{ 
    /** 
    * Handle an incoming request. 
    * 
    * @param \Illuminate\Http\Request $request 
    * @param \Closure $next 
    * @return mixed 
    */ 
    public function handle($request, Closure $next) 
    { 
     $matchedRouteObject = $this->route(); 
     $deedVariable = $mathedRouteObject->action['cache']; // here you got your variable. 
     return $next($request); 
    } 
}