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

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                ## 路由分組 路由分組功能允許把相同前綴的路由定義合并分組,這樣可以簡化路由定義,并且提高路由匹配的效率,不必每次都去遍歷完整的路由規則(尤其是開啟了路由延遲解析后性能更佳)。 使用`Route`類的`group`方法進行注冊,給分組路由定義一些公用的路由設置參數,例如: ~~~ Route::group('blog', function () { Route::rule(':id', 'blog/read'); Route::rule(':name', 'blog/read'); })->ext('html')->pattern(['id' => '\d+', 'name' => '\w+']); ~~~ 分組路由支持所有的路由參數設置,具體參數的用法請參考路由參數章節內容。 如果僅僅是用于對一些路由規則設置一些公共的路由參數(也稱之為虛擬分組),也可以使用: ~~~ Route::group(function () { Route::rule('blog/:id', 'blog/read'); Route::rule('blog/:name', 'blog/read'); })->ext('html')->pattern(['id' => '\d+', 'name' => '\w+']); ~~~ 路由分組支持嵌套,例如: ~~~ Route::group(function () { Route::group('blog', function () { Route::rule(':id', 'blog/read'); Route::rule(':name', 'blog/read'); }); })->ext('html')->pattern(['id' => '\d+', 'name' => '\w+']); ~~~ >[danger] 如果使用了嵌套分組的情況,子分組會繼承父分組的參數和變量規則,而最終的路由規則里面定義的參數和變量規則為最優先。 可以使用`prefix`方法簡化相同路由地址的定義,例如下面的定義 ~~~ Route::group('blog', function () { Route::get(':id', 'blog/read'); Route::post(':id', 'blog/update'); Route::delete(':id', 'blog/delete'); })->ext('html')->pattern(['id' => '\d+']); ~~~ 可以簡化為 ~~~ Route::group('blog', function () { Route::get(':id', 'read'); Route::post(':id', 'update'); Route::delete(':id', 'delete'); })->prefix('blog/')->ext('html')->pattern(['id' => '\d+']); ~~~ ## 路由完全匹配 如果希望某個分組下面的路由都采用完全匹配,可以使用 ~~~ Route::group('blog', function () { Route::get(':id', 'read'); Route::post(':id', 'update'); Route::delete(':id', 'delete'); })->completeMatch()->prefix('blog/')->ext('html')->pattern(['id' => '\d+']); ~~~ ## 延遲路由解析 支持延遲路由解析,也就是說你定義的路由規則(主要是分組路由和域名路由規則)在加載路由定義文件的時候并沒有實際注冊,而是在匹配到路由分組或者域名的情況下,才會實際進行注冊和解析,大大提高了路由注冊和解析的性能。 默認是關閉延遲路由解析的,你可以在路由配置文件中設置: ~~~ // 開啟路由延遲解析 'url_lazy_route' => true, ~~~ 開啟延遲路由解析后,如果你需要生成路由反解URL,需要使用命令行指令 ~~~ php think optimize:route ~~~ 來生成路由緩存解析。 >[danger] 通過路由分組或者域名路由來定義路由才能發揮延遲解析的優勢。 一旦開啟路由的延遲解析,將會對定義的域名路由和分組路由進行延遲解析,也就是說只有實際匹配到該域名或者分組后才會進行路由規則的注冊,避免不必要的注冊和解析開銷。 ## 路由規則合并解析 同一個路由分組下的路由規則支持合并解析,而不需要遍歷該路由分組下的所有路由規則,可以大大提升路由解析的性能。 對某個分組單獨開啟合并規則解析的用法如下: ~~~php Route::group('user', function () { Route::rule('hello/:name','hello'); Route::rule('think/:name','think'); })->mergeRuleRegex(); ~~~ 這樣該分組下的所有路由規則無論定義多少個都只需要匹配檢查一次即可(實際上只會合并檢查符合當前請求類型的路由規則)。 >[danger] `mergeRuleRegex`方法只能用于路由分組或者域名路由(域名路由其實是一個特殊的分組)。 或者在路由配置文件中設置開啟全局合并規則(對所有分組有效) ~~~ // 開啟路由合并解析 'route_rule_merge' => true, ~~~ ## 傳入額外參數 可以統一給分組路由傳入額外的參數 ~~~ Route::group('blog', [ ':id' => 'Blog/read', ':name' => 'Blog/read', ])->ext('html') ->pattern(['id' => '\d+']) ->append(['group_id' => 1]); ~~~ 上面的分組路由統一傳入了`group_id`參數,該參數的值可以通過`Request`類的`param`方法獲取。 ## 指定分組調度 `V6.0.8+`版本開始,可以給路由分組單獨指定調度類,例如: ~~~ Route::group('blog', [ ':id' => 'Blog/read', ':name' => 'Blog/read', ])->dispatcher(GroupDispatcher::class); ~~~
                  <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>

                              哎呀哎呀视频在线观看