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

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                ## 路由參數 路由參數是指可以設置一些路由匹配的條件參數,主要用于驗證當前的路由規則是否有效,主要包括: |參數|說明| |---|---| |method|請求類型檢測,支持多個請求類型| |ext|URL后綴檢測,支持匹配多個后綴| |deny_ext|URL禁止后綴檢測,支持匹配多個后綴| |https|檢測是否https請求| |domain|域名檢測| |before_behavior|前置行為(檢測)| |after_behavior|后置行為(執行)| |callback|自定義檢測方法| |merge_extra_vars| 合并額外參數| |bind_model|綁定模型(`V5.0.1+`)| |cache|請求緩存(`V5.0.1+`)| |param_depr|路由參數分隔符(`V5.0.2+`)| |ajax|Ajax檢測(`V5.0.2+`)| |pjax|Pjax檢測(`V5.0.2+`)| `V5.0.3+`版本對`ajax`/`pjax`/`https`條件支持`false`。 > 這些路由參數可以混合使用,只要有任何一條參數檢查不通過,當前路由就不會生效,繼續檢測后面的路由規則。 ### 請求類型 如果指定請求類型注冊路由的話,無需設置`method`請求類型參數。如果使用了`rule`或者`any`方法注冊路由,或者使用路由配置定義文件的話,可以單獨使用`method`參數進行請求類型檢測。 使用方法: ~~~ // 檢測路由規則僅GET請求有效 Route::any('new/:id','News/read',['method'=>'get']); // 檢測路由規則僅GET和POST請求有效 Route::any('new/:id','News/read',['method'=>'get|post']); ~~~ ### URL后綴 ~~~ // 定義GET請求路由規則 并設置URL后綴為html的時候有效 Route::get('new/:id','News/read',['ext'=>'html']); ~~~ 支持匹配多個后綴,例如: ~~~ Route::get('new/:id','News/read',['ext'=>'shtml|html']); ~~~ 可以設置禁止訪問的URL后綴,例如: ~~~ // 定義GET請求路由規則 并設置禁止URL后綴為png、jpg和gif的訪問 Route::get('new/:id','News/read',['deny_ext'=>'jpg|png|gif']); ~~~ >[danger] `V5.0.7`版本以上,`ext`和`deny_ext`參數允許設置為空,分別表示不允許任何后綴以及必須使用后綴訪問。 ### 域名檢測 支持使用完整域名或者子域名進行檢測,例如: ~~~ // 完整域名檢測 只在news.thinkphp.cn訪問時路由有效 Route::get('new/:id','News/read',['domain'=>'news.thinkphp.cn']); // 子域名檢測 Route::get('new/:id','News/read',['domain'=>'news']); ~~~ ### HTTPS檢測 支持檢測當前是否HTTPS訪問 ~~~ Route::get('new/:id','News/read',['https'=>true]); ~~~ ### 前置行為檢測 支持使用行為對路由進行檢測是否匹配,如果行為方法返回false表示當前路由規則無效。 ~~~ Route::get('user/:id','index/User/read',['before_behavior'=>'\app\index\behavior\UserCheck']); ~~~ 行為類定義如下: ~~~ namespace app\index\behavior; class UserCheck { public function run() { if('user/0'==request()->url()){ return false; } } } ~~~ ### 后置行為執行 可以為某個路由或者某個分組路由定義后置行為執行,表示當路由匹配成功后,執行的行為,例如: ~~~ Route::get('user/:id','User/read',['after_behavior'=>'\app\index\behavior\ReadInfo']); ~~~ 其中\app\index\behavior\ReadInit 行為類定義如下: ~~~ namespace app\index\behavior; use app\index\model\User; class ReadInfo { public function run(){ $id = request()->route('id'); request()->user = User::get($id); } } ~~~ 如果成功匹配到`new/:id`路由后,就會執行行為類的run方法,參數是路由地址,可以動態改變。 ### Callback檢測 也可以支持使用函數檢測路由,如果函數返回false則表示當前路由規則無效,例如: ~~~ Route::get('new/:id','News/read',['callback'=>'my_check_fun']); ~~~ ### 合并額外參數 通常用于完整匹配的情況,如果有額外的參數則合并作為變量值,例如: ~~~ Route::get('new/:name$','News/read',['merge_extra_vars'=>true]); ~~~ http://serverName/new/thinkphp/hello 會被匹配到,并且`name`變量的值為 `thinkphp/hello`。 ### 配置文件中添加路由參數 如果使用配置文件的話,可以使用: ~~~ return [ 'blog/:id' => ['Blog/update',['method' => 'post','ext'=>'html|shtml']], ]; ~~~ ### 路由綁定模型(`V5.0.1`) 可以在當前路由匹配后綁定模型,后面則同過方法的對象自動注入來獲取。 ~~~ Route::get('new/:name$','News/read',['bind_model'=>['User','name']]); ~~~ 更多細節可以參考請求->依賴注入。 ### 緩存路由請求 可以對當前的路由請求進行緩存處理,例如: ~~~ Route::get('new/:name$','News/read',['cache'=>3600]); ~~~ 表示對當前路由請求緩存3600秒。
                  <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>

                              哎呀哎呀视频在线观看