<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 功能強大 支持多語言、二開方便! 廣告
                # 路由 使用thinkphp,建議開啟強制路由; 不開啟強制路由的程序猿不是個好好程序猿(可以有效防止黑客惡意訪問,如:猜后臺地址,猜文件路徑) 開啟強制路由:文件位置:config/route.php 'url_route_must' => true, // 是否強制使用路由 ### 認識系統路由 當前主要針對CRMEB客戶關系管理系統為例指導大家如何配置路由。 對路由的基本知識點,我們在不做過多贅述,不太懂的小伙伴可以前往 [Thinkphp開發文檔](http://www.hmoore.net/manual/thinkphp6_0/1037494)進行學習。 接口地址:http://域名/應用模塊目錄名/具體業務控制器目錄/方法名 controller目下下的業務類文件和route路由下的路由文件基本是一一對應的。 大家也會發現個別業務控制器沒有對應的路由文件,這個需要說明一點,業務控制器并不是強制一一對應的, 當然你完全可以把order控制器中的接口地址配置到user路由文件里面,但是為了各模塊功能清晰,保證統一管理,不建議你這么做。 ### 如何新增路由 我們以order控制器為例,新增order_demo方法。控制器目錄:admin/controller/store/order/StoreOrder.php ~~~ public function order_demo() { $where = $this->request->postMore([ ['one', '2'], ['two', '2'], ]); $data = $this->services->orderCount($where); return $this->success($data); } ~~~ 配置路由,路由目錄:/route/admin.php ~~~ Route::post('demo', 'admin.store.order.StoreOrder/order_demo')->name('OrderDemo'); ~~~ ### 如何修改路由請求方式 我們以order控制器為例,請求訪問chart方法。`Route::get('chart', 'admin.store.order.StoreOrder/chart')->name('StoreOrderChart')`,是我們當前接口的路由配置,前端以get請求調取接口即可:http://serverName/adminapi/order/chart。 如果我們要修改請求方式,將get修改為post,記得修改四處地方: 1. 將接口數據接收方式改為post接收 ~~~ public function chart() { $where = $this->request->postMore([ ['data', '', '', 'time'], [['type', 'd'], 0], ]); $data = $this->services->orderCount($where); return $this->success($data); } ~~~ 2. 路由文件配置改為post請求。 ~~~ Route::post('chart', 'admin.store.order.StoreOrder/chart')->name('StoreOrderChart'); ~~~ 3. 前端調用請求方式務必改為post請求 4. 后臺菜單【設置】【管理權限】【權限規則】進入數據列表,將訂單->訂單管理->訂單數據請求方式改為post即可, ### 如何給路由添加混合參數 路由配置:在方法名后/:參數 ~~~ Route::get('chart/:id', 'admin.store.order.StoreOrder/chart')->name('StoreOrderChart'); ~~~ 控制器:入參傳入$id ~~~ public function chart($id) { $where = $this->request->getMore([ ['data', '', '', 'time'], [['type', 'd'], 0], ]); $where['orderId'] = $id; $data = $this->services->orderCount($where); return $this->success($data); } ~~~ ### 資源路由 支持設置`RESTFul`請求的資源路由,方式如下: `Route::resoure('user','user');` 表示注冊了一個名稱為`user`的資源路由到`User`控制器,系統會自動注冊7個路由規則,如下: | 標識 | 請求類型 | 生成路由規則 | 對應操作方法(默認) | | --- | --- | --- | --- | | index | GET | user | index | | create| GET | user/create | create | | save | POST | user | save | | read | GET | user/:id | read | | edit | GET | user/:id/edit | edit | | update | PUT | user/:id | update | | delete | DELETE | user/:id | delete | ### 路由分組 >使用`Route`類的`group`方法進行注冊,路由分組也支持嵌套,例如: ``` //分組嵌套 Route::group('user',function(){ Route::get('user_info','user/user/info'); Route::get('group','user.gourp/list'); Route::get('label','user.label/list'); }); //嵌套 Route::group('user',function(){ Route::get('user_info','user/user/info'); Roure::group('group',function(){ Route::get('group','user.gourp/list'); }); Route::group('label',function(){ Route::get('label','user/label/list'); }); }); ``` ### 路由分組與路由中間件配合使用,可以控制訪問權限 ``` Route::group('user',function(){ Route::get('user/[:type]','user/list'); })->middleware(\app\index\middleware\AuthTokenMiddleware::class, true); ``` ### 跨域請求 如果某個路由或者分組需要支持跨域請求,可以使用 ``` Route::get('user/[:type]','user/list')->allowCrossDomain(); ``` 跨域請求一般會發送一條`OPTIONS`的請求,一旦設置了跨域請求的話,不需要自己定義`OPTIONS`請求的路由,系統會自動加上。 會默認帶上header: ``` Access-Control-Allow-Origin:\* Access-Control-Allow-Methods:GET, POST, PATCH, PUT, DELETE Access-Control-Allow-Headers:Authorization, Content-Type, If-Match, If-Modified-Since, If-None-Match, If-Unmodified-Since, X-Requested-With ``` 也可以添加或更改header ``` Route::get('user/[:type]','user/list')->allowCrossDomain([ 'Access-Control-Allow-Origin' => 'thinkphp.cn', 'Access-Control-Allow-Credentials' => 'true' ]); ``` ### MISS路由 如果希望在沒有匹配到所有的路由規則后執行一條設定的路由,可以注冊一個單獨的`MISS`路由: ``` Route::miss('public/index'); ``` 也可以使用閉包 ``` Route::miss(function(){ return '404 Not Found!'; }); ```
                  <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>

                              哎呀哎呀视频在线观看