亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > PHP > 正文

Yii2 rbac權限控制之菜單menu實例教程

2020-03-22 19:20:10
字體:
來源:轉載
供稿:網友
在上篇文章給大家介紹了yii2搭建完美后臺并實現rbac權限控制實例教程中完美實現了yii2的后臺搭建和rbac權限控制,如果你還沒有實現,請先看上文再回來參考本文,因為本文是在上文的基礎上進行完善和補充。部分小伙們紛紛反映,最后菜單menu怎么控制權限呀,看不懂,搞不定,而且你那貌似沒搞完,瞎忽悠!確實沒那么全,今天看我們如何實現菜單完美權限化。先羅列下主要講的內容,不需要的沒必要看下去,只為分享給有需要的人。利用menu表添加菜單左側菜單結果adminlte完美呈現菜單前面自定義icon小圖標并呈現如何控制菜單的顯示或者隱藏頁面操作按鈕沒權限的不做顯示gridview中也只顯示有操作權限的按鈕嗯,差不多就這么多,如果你還有其他的有關權限控制菜單的需求,請下方留言,咱們共同切磋交流。先看圖預覽下大致效果,不然怎么激起你們好學的心。首先我們先訪問路由頁面 /dmin/route/index ,盡可能的把左側的全部選中,然后移動到右側,,然后記得給當前用戶分配相關的可訪問權限哦。接下來訪問菜單列表 /admin/menu/index 點擊添加菜單,如果這個時候你沒有權限訪問了,請你在配置文件的 as access文件內暫時允許當前用戶訪問任意權限,并在我們添加完權限的時候去掉as access的設置,一定要記得哦,不然權限失效了可別回來找我。這里我們先填寫上圖中標紅的四個字段舉個例子:我們要添加一級菜單"權限管理"名稱請填寫"權限管理",因為是一級菜單,父級名稱請留空,路由我們這里選擇"/admin/default/index",注意了,如果匹配到任何路由,請訪問路由頁面把左側的選中移動到右側。映射,其實就是排序高低的問題,比如說我添加了兩個菜單,映射值為1的就在上面 值為2的就在1的下面,我們這里填寫數字1。"數據"這一項我們后面再說。按照剛剛介紹的這種方式添加吧,舉一個添加二級菜單"權限控制"的例子只需要把父級名稱這里填寫我們剛剛添加成功的一級名稱"權限管理"即可。其他照舊。不會操作的多看兩遍,這里最好把權限管理的幾個菜單全部添加完畢,因為接下來我們需要且你可以多練練手嘛。到此我們已經會添加菜單了。我們來看下一步,利用我們之前搭建的后臺框架進行展現。use mdm/admin/components/MenuHelper; echo dmstr/widgets/Menu::widget( ['options' = ['html' target='_blank'>class' = 'sidebar-menu'], 'items' = MenuHelper::getAssignedMenu(Yii::$app- user- id), ] );是不是很簡單,What?我的怎么沒有dmstr這玩意,不好意思,已經說的很多遍,需要先看上文再有這個菜單的結合。ok,刷新頁面看看你的菜單,雖然我們還沒完全實現我們想要的功能,不過到此你應該能看到你的菜單展現了。接下來將進入我們的重點以及難點,我們要實現菜單前面的小圖標且完成菜單可隱藏控制。還記得我們一開始創建菜單的時候,唯一沒進行填寫的選項"數據"嗎?為了后續操作方便,我們這里一并把圖標和隱藏的選項都填寫上。我們以開始截圖中的"后臺用戶管理"這個二級菜單為例進行修改。截圖大家先看看我們的菜單目前的狀態,請在其更新頁面的“數據”項中務必填寫下面的代碼,如果你有新的想法,還請先按照我的思路后面再做修改,因為后面我們要進行操作。{"icon": "fa fa-user", "visible": false}是的,這個"數據"項我們填寫的是一段json代碼,接下來我們對展示菜單的代碼也做稍微的整改,為了方便大家看代碼,這里的$callback直接寫在頁面上了,回頭大家可以繼續封裝優化。use mdm/admin/components/MenuHelper; php $callback = function($menu){ $data = json_decode($menu['data'], true); $items = $menu['children']; $return = [ 'label' = $menu['name'], 'url' = [$menu['route']], //處理我們的配置 if ($data) { //visible isset($data['visible']) && $return['visible'] = $data['visible']; //icon isset($data['icon']) && $data['icon'] && $return['icon'] = $data['icon']; //other attribute e.g. class... $return['options'] = $data; //沒配置圖標的顯示默認圖標 (!isset($return['icon']) || !$return['icon']) && $return['icon'] = 'fa fa-circle-o'; $items && $return['items'] = $items; return $return; //這里我們對一開始寫的菜單menu進行了優化echo dmstr/widgets/Menu::widget( [ 'options' = ['class' = 'sidebar-menu'], 'items' = MenuHelper::getAssignedMenu(Yii::$app- user- id, null, $callback), ] ); 是的,你沒有看錯,代碼是有點長,我們來簡單分析分析。其實我們這里的$callback方法也只是針對上面我們添加菜單的"數據"項進行的分析。不難看出,我們對icon和visible分別進行了判斷,并追加到當前menu中。到此,我們費了一番波折終于實現菜單加icon和設置菜單的隱藏。如果你有其他的屬性需要進行配置,此處仍然可以繼續單獨配置。現在,我們還有兩個任務仍待完成,要完成接下來的兩個任務,為了大家的方便,建議你的項目可以自定義配置gii模版,不支持自定義gii模板的可以參考自定義gii模版 當你發現我們后面需要做的功能,我覺得你會贊嘆我們這里的操作。為了方便操作,我們這里增加一個測試表test,我們先用未做修改的gii模版生成一份model+curd。我們先把test/*的所有權限分配給當前登錄的用戶,并添加一條數據。打開/test我們可以正??吹较旅娴慕貓D,注意圖中的兩個標記。然后我們打開test/index.php文件,對標記的兩個地方進行如下修改use mdm/admin/components/Helper; php //沒有創建權限不顯示按鈕 if(Helper::checkRoute('create')) { echo Html::a('Create Test', ['create'], ['class' = 'btn btn-success']); = GridView::widget([ // ...... 'columns' = [ // ...... 'class' = 'yii/grid/ActionColumn', 'template' = Helper::filterActionColumn('{view}{update}{delete}'), ]); 現在我們刷新下頁面/test再看看,好像沒什么變化嘛。別急,我們現在撤銷當前用戶的/test/create 權限和/test/update權限,然后你在刷新下頁面看看效果,我們截圖看看。也就是說我們沒有權限的按鈕消失了,當你手動訪問/test/create的時候你會發現也會提醒你沒有權限。如果你的gii模板是自定義的,相信你會迅速在其生成的模板中所有的操作上添加權限控制的,是不是很happy最后,我們的菜單menu關于權限控制的講解基本也就結束了,長篇大論,仔細回想起來也沒多少東西,倒是希望能幫到你一二PHP教程

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品中文在线| 久久精品视频导航| 欧美一级黄色网| 在线观看精品国产视频| 国产亚洲成精品久久| 日本精品中文字幕| 欧美激情亚洲国产| 在线视频欧美日韩精品| 国产精品久久久久久婷婷天堂| 亚洲热线99精品视频| 亚洲图片在线综合| 日韩在线视频观看正片免费网站| 97香蕉超级碰碰久久免费软件| 欧美日韩一区二区免费在线观看| 川上优av一区二区线观看| 日韩免费观看av| 久久天堂电影网| 国产亚洲福利一区| 欧美精品videos性欧美| 91老司机在线| 精品久久久一区二区| 国产精品亚洲精品| 日本高清+成人网在线观看| 国产91免费看片| 91地址最新发布| 国产精品亚洲精品| 成人国产精品免费视频| 亚洲自拍另类欧美丝袜| 国产日韩在线看片| 日韩av不卡在线| 懂色av影视一区二区三区| 久久精品小视频| 国产日韩精品在线| 亚洲国产免费av| 亚洲综合日韩在线| 亚洲国产古装精品网站| 亚洲视频在线观看| 欧美大片欧美激情性色a∨久久| 欧美成年人网站| 在线日韩中文字幕| 成人乱色短篇合集| 正在播放欧美一区| 亚洲免费影视第一页| 欧美激情第6页| 中文字幕日韩av电影| 91av视频导航| 欧美性猛交xxxx富婆| 欧美专区福利在线| 91午夜理伦私人影院| 国产精品高潮呻吟久久av野狼| 97在线看福利| 社区色欧美激情 | 欧美大人香蕉在线| 亚洲精品成人av| 国产精品一区二区三区成人| 国产欧美日韩中文字幕| 精品国产拍在线观看| 久久99久国产精品黄毛片入口| 国产精品成av人在线视午夜片| 中文字幕亚洲二区| 66m—66摸成人免费视频| 欧美激情亚洲自拍| 2023亚洲男人天堂| 久久精品国亚洲| 91精品国产亚洲| 国产精品久久久久7777婷婷| 97精品国产97久久久久久春色| 国产一区二区日韩| 精品一区二区电影| 91亚洲国产精品| 久久在线免费视频| 91影视免费在线观看| 国产精品综合久久久| 国产亚洲人成a一在线v站| 91免费福利视频| 国产精品高潮呻吟久久av无限| 色老头一区二区三区在线观看| 日本a级片电影一区二区| 98视频在线噜噜噜国产| 欧美乱人伦中文字幕在线| 538国产精品一区二区免费视频| 国产999视频| 国产欧美精品一区二区| 国产成人精品在线视频| 国产精品高潮呻吟久久av黑人| 亚洲影院色在线观看免费| 欧美黄色片在线观看| 国产综合福利在线| 亚洲美女性生活视频| 欧美交受高潮1| 高清一区二区三区四区五区| 91影院在线免费观看视频| 亚洲自拍偷拍网址| 91久久国产精品91久久性色| 国产精品免费福利| 日韩欧美在线国产| 久久精品青青大伊人av| 日韩在线观看免费高清完整版| 丝袜美腿精品国产二区| 国产又爽又黄的激情精品视频| 亚洲夜晚福利在线观看| 国产精品美乳一区二区免费| 伊人av综合网| 亚洲精品电影久久久| 久久九九精品99国产精品| 日韩中文字幕av| 亚洲欧洲美洲在线综合| 久久精品久久精品亚洲人| 国产精品一区二区三区免费视频| 久久手机精品视频| 一本大道久久加勒比香蕉| 国产亚洲精品美女久久久| 久久在精品线影院精品国产| yw.139尤物在线精品视频| 国产精品色悠悠| 精品爽片免费看久久| 一区二区三区久久精品| 日韩**中文字幕毛片| 欧美大片大片在线播放| 91免费在线视频| 性色av香蕉一区二区| 亚洲欧美日本伦理| 国产精品久久久久不卡| 亚洲精品久久久久久久久| 国产精品96久久久久久又黄又硬| 国产婷婷97碰碰久久人人蜜臀| 国产免费一区二区三区香蕉精| 2019精品视频| 韩国福利视频一区| 亚洲精品福利免费在线观看| 奇米成人av国产一区二区三区| 日韩中文娱乐网| 午夜精品福利在线观看| 国产午夜精品全部视频播放| 琪琪亚洲精品午夜在线| 国产精品成人国产乱一区| 亚洲va欧美va国产综合剧情| 一区二区欧美日韩视频| 久久精品国产久精国产一老狼| 亚洲三级黄色在线观看| 亚洲成人精品久久| 久久亚洲影音av资源网| 亚洲性xxxx| 亚洲人在线观看| 欧美精品成人在线| 日韩一区二区久久久| 在线播放日韩av| 黑人欧美xxxx| 亚洲人成电影网站色www| 国产午夜精品视频| 亚洲第一网中文字幕| 国产精品91免费在线| 欧美激情日韩图片| 亚洲国产精品人人爽夜夜爽| 国产网站欧美日韩免费精品在线观看| 中文字幕亚洲图片| 日韩在线观看免费| 亚洲精品视频在线播放| 国产精品久久在线观看| 亚洲亚裔videos黑人hd| 日韩精品在线免费观看视频| 久久亚洲精品视频| 成人免费视频在线观看超级碰| 国产精品69精品一区二区三区|