<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之旅 廣告
                ## **路由文件的地址** 沒有全局路由定義的概念 單應用:/與public同級的route/route.php 多應用(admin應用):app/admin/route/route.php ## **注冊路由** >[info] Route::rule('路由表達式', '路由地址(模塊/控制器/方法)', '請求類型 默認*'); > ~~~ >Route::rule('new/:id','News/read','GET|POST'); >~~~ ## **快捷注冊** Route::快捷方法名('路由表達式', '路由地址'); ~~~ Route::get('new/<id>','News/read'); // 定義GET請求路由規則 Route::post('new/<id>','News/update'); // 定義POST請求路由規則 Route::put('new/:id','News/update'); // 定義PUT請求路由規則 Route::delete('new/:id','News/delete'); // 定義DELETE請求路由規則 Route::any('new/:id','News/read'); // 所有請求都支持的路由規則 //是對PUT方法的補充,用來對已知資源進行局部更新 Route::patch('new/:id','News/patch'); // 定義PATCH請求路由規則 ~~~ 路由地址: >``` >// 默認應用 >'default_app' =>'index' >// 默認控制器名 >'default_controller' => 'Index', >``` >~~~ >// 路由到非默認的admin模塊和控制器 如:app/admin/controller/Blog.php >Route::rule('blog/:id', 'admin/blog/read'); > >// 路由到默認應用 非默認控制器 如:如app/index/controller/Blog.php >Route::rule('blog/:id', 'blog/read'); > >// 當路由到配置的默認應用及的默認控制器名 如app/index/controller/Index.php >Route::rule('blog/:id', 'read'); > Route::rule('blog/:id', 'index/index/read'); > >//多級控制 > Route::rule('blog/:id', 'index/group.blog/read');//路由到index/controller/group/Blog.php >~~~ 例子: ~~~ /* 單應用模式下 輸入:http://serverName/new/5會自動路由到:http://servername/news/read/id/5 */ // 注冊路由到News控制器的read操作 Route::rule('new/:id','News/read'); /* 多應用模式下 輸入:http://serverName/admin/new/5會自動路由到:http://servername/news/read/id/5 */ // 注冊路由到app/admin/News控制器的read操作 Route::rule('new/:id','News/read'); 或者: Route::rule('new/:id','admin/News/read'); ~~~ >[danger]總結: 多應用模式下,**應用名**在rule定義時可以省略,url訪問時必須加上 ## **可選變量**[ ] 支持對路由參數的可選定義,例如: ~~~ Route::get('blog/:year/[:month]','Blog/archive'); // 或者 Route::get('blog/<year>/<month?>','Blog/archive'); ~~~ 以上定義路由規則后,下面的URL訪問地址都可以被正確的路由匹配: ~~~ http://serverName/index.php/blog/2015 http://serverName/index.php/blog/2015/12 ~~~ >[danger]可選參數只能放到路由規則的最后,如果在中間使用了可選參數的話,后面的變量都會變成可選參數。 ## **完全匹配** 如果需要全局進行URL完全匹配,可以在路由配置文件中設置 ~~~ // 開啟路由完全匹配 'route_complete_match' => true, ~~~ 規則匹配檢測的時候默認只是對URL從頭開始匹配,只要URL地址開頭包含了定義的路由規則就會匹配成功,如果希望URL進行完全匹配,可以在路由表達式最后使用`$`符號,例如: ~~~ Route::get('new/:cate$', 'News/category'); ~~~ 這樣定義后 ~~~ http://serverName/index.php/new/info 匹配成功 http://serverName/index.php/new/info/2 匹配失敗 ~~~ ## **額外參數** 在路由跳轉的時候支持額外傳入參數對(額外參數指的是不在URL里面的參數,隱式傳入需要的操作中,有時候能夠起到一定的安全防護作用,后面我們會提到)。例如: ~~~ Route::get('blog/:id','blog/read') ->append(['status' => 1, 'app_id' =>5]); ~~~ 上面的路由規則定義中`status`和`app_id`參數都是URL里面不存在的,屬于隱式傳值,當然并不一定需要用到,只是在需要的時候可以使用。 >[danger] 如果`append`方法中的變量和路由規則存在沖突的話,append方法傳入的優先。 ## **路由標識** 如果你需要快速的根據路由生成URL地址,可以在定義路由的時候指定生成標識(但要確保唯一)。 例如 ~~~ // 注冊路由到News控制器的read操作 Route::rule('new/:id','News/read') ->name('new_read'); ~~~ 生成路由地址的時候就可以使用 ~~~ url('new_read', ['id' => 10]); ~~~ 如果不定義路由標識的話,系統會默認使用路由地址作為路由標識,例如可以使用下面的方式生成 ~~~ url('News/read', ['id' => 10]); ~~~ ## **強制路由** 在路由配置文件中設置 ~~~ 'url_route_must' => true, ~~~ 將開啟強制使用路由,這種方式下面必須嚴格給每一個訪問地址定義路由規則(**包括首頁**),否則將拋出異常。 首頁的路由規則采用`/`定義即可,例如下面把網站首頁路由輸出`Hello,world!` ~~~ Route::get('/', function () { return 'Hello,world!'; }); ~~~ ## **規則表達式** 規則表達式通常包含靜態規則和動態規則,以及兩種規則的結合,例如下面都屬于有效的規則表達式: ~~~ Route::rule('/', 'index'); // 首頁訪問路由 Route::rule('my', 'Member/myinfo'); // 靜態地址路由 Route::rule('blog/:id', 'Blog/read'); // 靜態地址和動態地址結合 Route::rule('new/:year/:month/:day', 'News/read'); // 靜態地址和動態地址結合 Route::rule(':user/:blog_id', 'Blog/read'); // 全動態地址 ~~~
                  <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>

                              哎呀哎呀视频在线观看