首頁  >  問答  >  主體

Laravel的Route如何傳url中的參數到middleware?


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

});

$code要怎麼傳到middleware呢~
謝謝!

大家讲道理大家讲道理2713 天前544

全部回覆(2)我來回復

  • PHP中文网

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

    雷雷

    回覆
    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

    回覆
    0
  • 取消回覆