Heim  >  Fragen und Antworten  >  Hauptteil

Wie übergibt Laravel's Route Parameter in der URL an die Middleware?

Zum Beispiel
Route::group(['prefix'=>'code/{code}','middleware'=>'code'],function(){

});

Wie kann $code an Middleware übertragen werden~
Vielen Dank!

大家讲道理大家讲道理2713 Tage vor537

Antworte allen(2)Ich werde antworten

  • PHP中文网

    PHP中文网2017-05-16 16:57:18

    $request->code 

    Antwort
    0
  • 我想大声告诉你

    我想大声告诉你2017-05-16 16:57:18

    中间件参数

    中间件也可以接收额外的自定义参数。例如,如果你的应用需要验证用户是否在执行 action 之前拥有给定的 “角色”,你可以创建一个接受角色名称作为额外参数的 RoleMiddleware 中间件。

    中间件的额外参数会在 $next 参数后传入:

    <?php
    
    namespace App\Http\Middleware;
    
    use Closure;
    
    class RoleMiddleware
    {
        /**
         * Run the request filter.
         *
         * @param  \Illuminate\Http\Request  $request
         * @param  \Closure  $next
         * @param  string  $role
         * @return mixed
         */
        public function handle($request, Closure $next, $role)
        {
            if (! $request->user()->hasRole($role)) {
                // Redirect...
            }
    
            return $next($request);
        }
    
    }

    中间件参数可以在定义路由时将中间件的名称和参数用 : 隔开来指定。多个参数应当用逗号隔开:

    Route::put('post/{id}', ['middleware' => 'role:editor', function ($id) {
        //
    }]);

    详情参考:http://www.golaravel.com/laravel/docs/5.1/middleware/#middleware-parameters

    Antwort
    0
  • StornierenAntwort