国产+高潮+在线,国产 av 仑乱内谢,www国产亚洲精品久久,51国产偷自视频区视频,成人午夜精品网站在线观看

webadmin編輯角色管理后,一些菜單會自動消失

banro512

webadmin編輯角色管理后,之前添加的某些正常菜單會自動消失(被自動從數(shù)據(jù)庫中刪掉)

bug描述

后臺手動添加了菜單,使用、顯示均正常,數(shù)據(jù)表admin_rules里也有這條記錄。


上級菜單=0,iframe接入,name=app\admin\controller\Index@home。此控制器和方法真實存在且有效,/admin/index/home是可以正常訪問和顯示

數(shù)據(jù)表 admin_rules中此時正確生成了記錄

但當(dāng)?shù)?權(quán)限管理-角色管理,進行新增或編輯已有角色后。刷新后臺,新增的這個菜單就會消失。
從數(shù)據(jù)庫表 admin_rules 里也找不到記錄了,說明已經(jīng)被刪掉了。

并非所有新增菜單都如此,加了很多,發(fā)現(xiàn)只有一個會出現(xiàn)此問題。這個是打算作為控制臺使用的,即頂級菜單、iframe接入,詳細配置如上圖。

期待的結(jié)果及實際結(jié)果

角色管理編輯和菜單是否消失,應(yīng)該無關(guān)

/*

admin_rules表增加了一個 int(10) xuhao 字段,default 0,用于排序,
`xuhao` int unsigned NOT NULL DEFAULT '0'

plugin/admin/app/controller/common/MenuController.php getRulesAndItems() 方法 
AdminRule::orderBy('xuhao','asc')->get()->toArray(); 增加了排序orderBy語句,其他均是默認(rèn)

*/

// 前臺代碼是修改了標(biāo)題等中文名稱后重新編譯覆蓋的。這個應(yīng)該和數(shù)據(jù)庫無關(guān)

重現(xiàn)bug的步驟

  1. 新增菜單。配置如下圖。刷新后臺,確認(rèn)菜單出現(xiàn)

  2. 到 權(quán)限管理-角色管理中,新增一個角色并隨便賦予權(quán)限后保存。刷新后臺,查看菜單是否還在

系統(tǒng)環(huán)境及workerman/webman等具體版本

centos 7.9

PHP 8.1.9 (cli) (built: Aug 9 2022 10:39:55) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.1.9, Copyright (c) Zend Technologies

Webman-framework v1.4.9

webman-admin 0.3.4

1406 2 1
2個回答

damao

類 app\admin\controller\Index 不存在,應(yīng)該是 app\admin\controller\IndexController ?

  • banro512 2022-11-01

    存在,我的控制器是不帶 Controller 后綴的,這個控制器和方法是一直能正常使用的,/admin/index/home, 即便從菜單中被刪除

walkor 打賞

角色管理里會觸發(fā)plugin/admin/app/api/controller/auth/AdminRuleController.php 里的 syncRules方法,syncRules方法會刪除類方法不存在的菜單,把這段注釋掉試下。

截圖

  • banro512 2022-11-01

    這段代碼注釋掉就可以了。但是這個控制器和方法是真實存在的,并且也能直接通過url /admin/index/home訪問的。
    上面正文里有截圖。
    原本是我自己的后臺,通過iframe集成到的 webadmin中

  • banro512 2022-11-01

    測試了下,似乎是這樣的,作為頂級的菜單,name不能使用 @action,如果我將name改為 app\admin\controller\Index 即使不注釋掉,也不會刪除,可以繼續(xù)在其下增加子菜單 home。但是如果name后加上 @home,則會被刪除

年代過于久遠,無法發(fā)表回答
??