<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                # 官方文檔: http://www.hmoore.net/manual/thinkphp5_1/564279 # 輸入命令生成中間件 ~~~ php think make:middleware Check ~~~ ![](https://img.kancloud.cn/ef/fb/effbcb3156bc9912f1d980ea1860dc0e_2096x985.png) ![](https://img.kancloud.cn/b8/ac/b8ac67b81c36d11ba26be1ec9b6a910c_2319x944.png) # 注冊中間件: # 在application里新鍵一個`middleware.php`文件 ## 代碼: ~~~ <?php return[ app\http\middleware\Check::class //注冊中間件 到應用目錄 ]; ~~~ ## 一般用于登陸的時候,如果哪個路由需要就單獨設置哪個路由 ![](https://img.kancloud.cn/b6/c8/b6c8d5d6a7d8604003b8ace1480802b8_1009x294.png) ![](https://img.kancloud.cn/d1/24/d124ab3406cc4f99a45a97a2a8a9f7d6_2579x1169.png) ## 中間件里返回對象包(一個完整的中間件框架就是以下圖片所展示代碼) ![](https://img.kancloud.cn/1e/92/1e92b3a6a8ce88a51f44790729590b43_3007x1164.png) ~~~ <?php namespace app\http\middleware; class Check { public function handle($request, \Closure $next) //入口 這里一般不要改變觸發改源代碼 \Closure 為匿名函數 { echo '123'; return $next($request); //返回request閉包 固定格式寫到這里 } } ~~~ # 中間件里的$request可以攔截所有來自路由的參數 進行判斷或者處理 ![](https://img.kancloud.cn/03/5d/035d3b60c8087745969707146c653fd2_2912x1498.png) # 代碼案例: ~~~ <?php namespace app\http\middleware; use think\Request; class Check { public function handle(Request $request, \Closure $next) //入口 這里一般不要改變觸發改源代碼 \Closure 為匿名函數 { //這個區域做邏輯判斷,判斷跳轉到哪里或者怎么樣 if($request->param('id')==100){ return redirect('/index'); }elseif($request->param('id')==500){ return redirect('/es'); } //這個區域做邏輯判斷,判斷跳轉到哪里或者怎么樣 return $next($request); //返回request閉包 固定格式寫到這里 } } ~~~ # 路由里的參數: ![](https://img.kancloud.cn/83/41/83414e684ef4c5b9bce980b028d3337d_1789x756.png) ~~~ <?php Route::get('index/[:id]','index/index/index'); //傳入值 Route::get('es','index/index/es'); ~~~ # 注意: ## 中間件的入口執行方法必須是`handle`方法,而且第一個參數是`Request`對象,第二個參數是一個閉包。 # 路由中注冊: ## 注冊中間件 ### 路由中間件 ## 最常用的中間件注冊方式是注冊路由中間件 ~~~ Route::rule('hello/:name','hello') ->middleware('Auth'); ~~~ ## 或者使用完整的中間件類名 ~~~ Route::rule('hello/:name','hello') ->middleware(app\http\middleware\Auth::class); ~~~ ## 支持注冊多個中間件 ~~~ Route::rule('hello/:name','hello') ->middleware(['Auth', 'Check']); ~~~ ## `V5.1.7+`版本,你可以直接在應用配置目錄下的`middleware.php`中先預定義中間件(其實就是增加別名標識),例如: ## ~~~ return [ 'auth' => app\http\middleware\Auth::class, 'check' => app\http\middleware\Check::class ]; ~~~ ## 然后直接在路由中使用中間件別名注冊 ~~~ Route::rule('hello/:name','hello') ->middleware(['auth', 'check']); ~~~ ## `V5.1.8+`版本開始,可以支持使用別名定義一組中間件,例如: ~~~ return [ 'check' => [ app\http\middleware\Auth::class, app\http\middleware\Check::class ], ]; ~~~ ## 然后,直接使用下面的方式注冊中間件 ~~~ Route::rule('hello/:name','hello') ->middleware('check'); ~~~ ## 支持對路由分組注冊中間件 ~~~ Route::group('hello', function(){ Route::rule('hello/:name','hello'); })->middleware('Auth'); ~~~ ## `V5.1.8+`版本開始支持對某個域名注冊中間件 ~~~ Route::domain('admin', function(){ // 注冊域名下的路由規則 })->middleware('Auth'); ~~~ 如果需要傳入額外參數給中間件,可以使用 ~~~ Route::rule('hello/:name','hello') ->middleware('Auth:admin'); ~~~ 如果使用的是常量方式定義,可以在第二個參數傳入中間件參數。 ~~~ Route::rule('hello/:name','hello') ->middleware(Auth::class, 'admin'); ~~~ 如果需要定義多個中間件,使用數組方式 ~~~ Route::rule('hello/:name','hello') ->middleware([Auth::class, 'Check']); ~~~ 可以統一傳入同一個額外參數 ~~~ Route::rule('hello/:name','hello') ->middleware([Auth::class, 'Check'], 'admin'); ~~~ 復制 或者單獨指定中間件參數。 ~~~ Route::rule('hello/:name','hello') ->middleware(['Auth:admin', 'Check:editor']); ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看