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

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                >[warning] 節點管理比較復雜,請仔細看 ## 分清模塊、控制器、多級控制器、方法的概念 ### 模塊(module) 模塊指的是 ThinkPHP5 里面的 `module` ,即是 `application` 文件夾下用于區分業務的文件夾,例如 `admin`,`index`,這些都是模塊,在鏈接中,它就是最靠近域名(標準部署模式,網站根目錄指向項目的 `public` 文件夾)的一個字符串,例如 `http://tpadmin.yuan1994.com/admin` ,該鏈接中 `admin` 就是模塊,在節點管理中,模塊都是根節點,可以有多個根節點,即多個模塊,但是,***一定要把控制器和方法節點都放在該根節點下*** ### 控制器(controller)和多級控制器 控制器指的是你在模塊下的 `controller` 文件夾新建的類,該類可能在 `controller` 根目錄下或者 `controller` 的某個子目錄下,例如在 `controller` 的根目錄下有個 `AdminGroup` 的控制器,那么通過 `$request->controller()` 請求獲取的到的控制器就是 `AdminGroup`,在鏈接里就是 `admin_group`(被格式成小寫,非首字母大寫會在前面追加一個下劃線 `_`),如果在 `controller` 的子目錄 `mp` 下有個 `UserTag` 的控制器,那么通過 `$request->controller()` 請求獲取的到的控制器就是 `mp.UserTag`,在鏈接里就是 `mp.user_tag`(被格式成小寫,非首字母大寫會在前面追加一個下劃線 `_`),這個就是 ThinkPHP5 的新特性,詳情請參考 [ThinkPHP5 - 多級控制器](http://www.hmoore.net/manual/thinkphp5/118054),***一定要弄懂多級控制器的概念,否則你就老老實實用普通控制器(一級控制器),不然的話,權限管理你永遠都走不通*** >[info] 一級控制器直接添加到該模塊節點下面,多級控制器可以多層添加,也可以使用點語法添加節點,例如 `one.two.ThreeFour` 可以將 `one` 添加到 `admin` 節點下,然后 `two` 添加到 `one` 節點下面,`ThreeFour` 添加到 `two` 節點下,或者直接將 `one.two.ThreeFour` 添加到 `admin` 節點下 > >[warning] 為了安全,請嚴格注意控制器名的大小寫 ### 方法(action) 方法指的控制器下的方法,該方法的訪問屬性必須為 `public`,在添加節點時必須添加到該控制器的下面,不區分大小寫 ## 添加節點 后臺左側導航菜單都是節點,只有頂層進行分類的是分組,所以添加節點就是添加菜單,如果節點添加錯誤會導致菜單不出來,也會導致權限管理失敗,其他帳號訪問該節點可能出現權限錯誤的問題,請嚴格注意節點的大小寫 >[warning] 為了減少左側菜單渲染時 SQL 查詢,菜單渲染時強制要求根節點不能為未分組,請任意選擇根節點為一個分組,不會將根節點渲染到任何一個分組的,否則會導致后臺沒有菜單,只能去數據庫修改數據才能恢復 如果直接點擊頭部的 `添加` 按鈕,添加的節點將是根節點,即模塊級別 如果是選中某個節點(包括點擊選中或復選框選中)或者在該節點上右鍵添加節點,添加的節點是該選中節點的子節點 > 如果是復選框選中節點后添加,并且有多個節點被選中,添加的節點是最上面被選中節點的子節點,該選中節點的判斷優先級規則是 `右鍵添加 > 點擊選中添加 > 復選框選中添加 > 多個復選框選中第一個元素` 添加節點時選擇分組,如果選擇未分組,菜單將不會顯示,如果該節點的某個父節點為未分組也不會顯示,如果該節點或該節點的父節點被禁用也不會顯示,如果某個用戶的權限里沒有可顯示的菜單,該用戶登錄到管理后臺會報無權限錯誤,請保證該用戶有菜單顯示 選擇節點分組時,分組只會對二級節點,即根節點(模塊級別)下節點進行分組,假如你的某個二級節點選擇的是 `系統管理` 分組,它下面的某個節點是 `示例分組` ,那么該節點菜單只會顯示在他父級節點的下面,即它還是屬于 `系統管理` 分組 如果你給某個控制器節點下面添加了子節點,即是方法級別的節點,請務必選擇該節點類型為 `方法` ,否則會在 `控制器` 類型的節點后面自動追加 `index` 方法 如果你添加了某個控制器節點,并且該節點下你也添加了方法節點,但是顯示為菜單時該控制器節點卻沒有變成你希望的鏈接菜單,下面會出現方法節點的菜單,此時你可以嘗試將這些方法節點的分組給選擇為未分組 如果你想把某個方法直接放在分組下當為一級菜單,你可以這樣添加 `Demo/upload` ,這樣該菜單就能直接在對應分組下找到該菜單,對于多級控制器,你也可以使用這種方法,例如根節點下添加節點 `one.two.ThreeFour/add` ,這種形式的節點我稱之為 `高階節點`,完美支持多級節點管理 ## 公共節點 公共節點的名稱在配置文件里的 `common_auth_name` 里,默認為 `common` 如果你想對所有的一級控制器下的 `add` 方法開放授權,你不必非常麻煩的把這些節點一個一個的勾選,然后保存,此時你可以在根節點下添加一個 `common` 節點,然后在 `common` 下添加一個 `add` 節點,然后對該節點授權,其他的一級控制器下的 `add` 節點都有權限了,即一個公共節點可以統籌所有和它同級別的節點,該 `common` 節點可以添加在任何地方,該公共節點下的節點就有統籌作用 ## 批量導入 為了讓添加節點不成為一個很頭疼的問題,你可以使用批量導入功能,不過批量導入功能只能掃描該節點對應控制器下的方法,并且所有訪問屬性為 `public` 的方法(包括從 traits 繼承的方法)并且排除 `$blacklist` 里的黑名單方法的所有方法,如果你選中的該節點不是一個有效的控制器,那么當前類下不會出現任何方法,該掃描出的節點的名稱是方法名,節點的標題是該方法的注釋,注釋格式必須按照下面的格式進行注釋(可以不要返回值): ``` /** * 下載文件 */ public function download() { if ($this->request->param('file')) { return \File::download("../README.md"); } else { return $this->view->fetch(); } } ``` 如果沒有注釋,該節點的標題為未定義 >[info] 由于版本遺留問題,公共控制器不再有訪問屬性為 `public` 的方法,全部移至 traits 中,所以會公共類中沒有節點,如果你在公共類中添加了訪問屬性為 `public` 的方法,就會掃描出來 ## 節點排序 只有節點的分組為一個明確分組而不是未分組時,節點的排序才有意義,因為只有此時節點才能渲染成菜單,節點的排序是排序值越小越靠前 v1.2 版本優化了節點管理,支持樹形節點管理,需要排序節點直接拖拽就行,拖拽的節點如果是當前節點組的第一個,那么它的排序值為 0,如果是其他,那么是前一個節點的排序值 +1,所以假如你給多個節點設置了相同的排序值,拖拽排序可能會出現排序值計算錯誤的,你可以選擇編輯節點手動輸入排序值 拖拽也同時可以自己調整節點層次,很方便的對節點層次進行管理 ## 演示示例 以下演示全部都是在根節點 `admin` 下 ### 菜單下節點未分組,僅作權限管理(最常用) ![](https://box.kancloud.cn/b3479549c75ee3015d620f548153d330_590x172.png) 顯示效果: ![](https://box.kancloud.cn/d458e9e19fbf35ebc2e68c2d7f01ff3e_199x245.png) 菜單鏈接:`admin/admin_group/index.html` ### 控制器下添加節點 ![](https://box.kancloud.cn/d30071b24ac675b214462e1f877eb86f_621x384.png) 顯示效果: ![](https://box.kancloud.cn/79732a774db8b9361c4ba6c7baaff3e0_216x85.png) 菜單鏈接:`admin/controller/action.html` ### 多級控制器多級菜單節點 ![](https://box.kancloud.cn/2c1bb1b7e3c65af9032ade3f42411d50_574x175.png) 顯示效果: ![](https://box.kancloud.cn/01c0475d1fd4f98159cbadc649b17fb5_260x170.png) 菜單鏈接:`admin/one.two.three_four/index.html` > 節點最后一級是控制器,所以自動添加 `index` 默認方法 ### 控制器默認方法 ![](https://box.kancloud.cn/72d67bcf3603a681b06715d1c1b7d91a_620x98.png) 顯示效果: ![](https://box.kancloud.cn/508388030f17a3a19bf91703cdf56452_188x181.png) 菜單鏈接:`admin/controller2/index` > 節點最后一級是控制器,所以自動添加 `index` 默認方法 ### 多級控制器默認方法 ![](https://box.kancloud.cn/5359cfcfbfb72cb016c005bf1879b909_627x151.png) 顯示效果: ![](https://box.kancloud.cn/80e78c921262bd867316b602b7432bdf_187x191.png) 菜單鏈接:`admin/one.two.three_four/index.html` > 節點最后一級是控制器,所以自動添加 `index` 默認方法 ### 多級控制器指定方法 ![](https://box.kancloud.cn/8df15db6fdedb09c9d9031c53a99a465_689x119.png) 顯示效果: ![](https://box.kancloud.cn/cb3d33ab579383afbcf57473b8867603_181x183.png) 菜單鏈接:`admin/one.two.three.four/add.html` >[info] 以上演示幾乎包含了所有可能添加節點的方法,如果你開發是還是出現問題,請自己慢慢檢查,學會調試,很快就能找到問題所在的,上面的各種情況都測試過沒有問題
                  <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>

                              哎呀哎呀视频在线观看