欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

Yii2中rbac權(quán)限控制之菜單menu的示例分析-創(chuàng)新互聯(lián)

這篇文章主要介紹了Yii2中rbac權(quán)限控制之菜單menu的示例分析,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

創(chuàng)新互聯(lián)憑借在網(wǎng)站建設(shè)、網(wǎng)站推廣領(lǐng)域領(lǐng)先的技術(shù)能力和多年的行業(yè)經(jīng)驗,為客戶提供超值的營銷型網(wǎng)站建設(shè)服務(wù),我們始終認(rèn)為:好的營銷型網(wǎng)站就是好的業(yè)務(wù)員。我們已成功為企業(yè)單位、個人等客戶提供了成都網(wǎng)站設(shè)計、成都網(wǎng)站建設(shè)服務(wù),以良好的商業(yè)信譽,完善的服務(wù)及深厚的技術(shù)力量處于同行領(lǐng)先地位。

先看圖預(yù)覽下大致效果,不然怎么激起你們好學(xué)的心。

Yii2中rbac權(quán)限控制之菜單menu的示例分析

首先我們先訪問路由頁面 /dmin/route/index ,盡可能的把左側(cè)的全部選中,然后移動到右側(cè),,然后記得給當(dāng)前用戶分配相關(guān)的可訪問權(quán)限哦。

接下來訪問菜單列表 /admin/menu/index 點擊添加菜單,如果這個時候你沒有權(quán)限訪問了,請你在配置文件的 as access文件內(nèi)暫時允許當(dāng)前用戶訪問任意權(quán)限,并在我們添加完權(quán)限的時候去掉as access的設(shè)置,一定要記得哦,不然權(quán)限失效了可別回來找我。

Yii2中rbac權(quán)限控制之菜單menu的示例分析

這里我們先填寫上圖中標(biāo)紅的四個字段

舉個例子:我們要添加一級菜單"權(quán)限管理"

名稱請?zhí)顚?quot;權(quán)限管理",因為是一級菜單,父級名稱請留空,路由我們這里選擇"/admin/default/index",注意了,如果匹配到任何路由,請訪問路由頁面把左側(cè)的選中移動到右側(cè)。

映射,其實就是排序高低的問題,比如說我添加了兩個菜單,映射值為1的就在上面 值為2的就在1的下面,我們這里填寫數(shù)字1。

"數(shù)據(jù)"這一項我們后面再說。

按照剛剛介紹的這種方式添加吧,舉一個添加二級菜單"權(quán)限控制"的例子

只需要把父級名稱這里填寫我們剛剛添加成功的一級名稱"權(quán)限管理"即可。其他照舊。不會操作的多看兩遍,這里好把權(quán)限管理的幾個菜單全部添加完畢,因為接下來我們需要且你可以多練練手嘛。

到此我們已經(jīng)會添加菜單了。

我們來看下一步,利用我們之前搭建的后臺框架進(jìn)行展現(xiàn)。

use mdm\admin\components\MenuHelper; 
echo dmstr\widgets\Menu::widget( [
'options' => ['class' => 'sidebar-menu'], 
'items' => MenuHelper::getAssignedMenu(Yii::$app->user->id), 
] );

是不是很簡單,What?我的怎么沒有dmstr這玩意,不好意思,已經(jīng)說的很多遍,需要先看上文再有這個菜單的結(jié)合。

ok,刷新頁面看看你的菜單,雖然我們還沒完全實現(xiàn)我們想要的功能,不過到此你應(yīng)該能看到你的菜單展現(xiàn)了。

接下來將進(jìn)入我們的重點以及難點,我們要實現(xiàn)菜單前面的小圖標(biāo)且完成菜單可隱藏控制。

還記得我們一開始創(chuàng)建菜單的時候,沒進(jìn)行填寫的選項"數(shù)據(jù)"嗎?為了后續(xù)操作方便,我們這里一并把圖標(biāo)和隱藏的選項都填寫上。我們以開始截圖中的"后臺用戶管理"這個二級菜單為例進(jìn)行修改。截圖大家先看看我們的菜單目前的狀態(tài),

Yii2中rbac權(quán)限控制之菜單menu的示例分析

請在其更新頁面的“數(shù)據(jù)”項中務(wù)必填寫下面的代碼,如果你有新的想法,還請先按照我的思路后面再做修改,因為后面我們要進(jìn)行操作。

{"icon": "fa fa-user", "visible": false}

是的,這個"數(shù)據(jù)"項我們填寫的是一段json代碼,接下來我們對展示菜單的代碼也做稍微的整改,為了方便大家看代碼,這里的$callback直接寫在頁面上了,回頭大家可以繼續(xù)封裝優(yōu)化。

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; 
} 
//沒配置圖標(biāo)的顯示默認(rèn)圖標(biāo) 
(!isset($return['icon']) || !$return['icon']) && $return['icon'] = 'fa fa-circle-o'; 
$items && $return['items'] = $items; 
return $return; 
}; 
//這里我們對一開始寫的菜單menu進(jìn)行了優(yōu)化
echo dmstr\widgets\Menu::widget( [ 
'options' => ['class' => 'sidebar-menu'], 
'items' => MenuHelper::getAssignedMenu(Yii::$app->user->id, null, $callback), 
] ); ?>

是的,你沒有看錯,代碼是有點長,我們來簡單分析分析。其實我們這里的$callback方法也只是針對上面我們添加菜單的"數(shù)據(jù)"項進(jìn)行的分析。不難看出,我們對icon和visible分別進(jìn)行了判斷,并追加到當(dāng)前menu中。

到此,我們費了一番波折終于實現(xiàn)菜單加icon和設(shè)置菜單的隱藏。如果你有其他的屬性需要進(jìn)行配置,此處仍然可以繼續(xù)單獨配置。

現(xiàn)在,我們還有兩個任務(wù)仍待完成,要完成接下來的兩個任務(wù),為了大家的方便,建議你的項目可以自定義配置gii模版,不支持自定義gii模板的可以參考自定義gii模版 當(dāng)你發(fā)現(xiàn)我們后面需要做的功能,我覺得你會贊嘆我們這里的操作。

為了方便操作,我們這里增加一個測試表test,我們先用未做修改的gii模版生成一份model+curd。我們先把test/*的所有權(quán)限分配給當(dāng)前登錄的用戶,并添加一條數(shù)據(jù)。打開/test我們可以正??吹较旅娴慕貓D,注意圖中的兩個標(biāo)記。

Yii2中rbac權(quán)限控制之菜單menu的示例分析

然后我們打開test/index.php文件,對標(biāo)記的兩個地方進(jìn)行如下修改

use mdm\admin\components\Helper; 
<?php 
//沒有創(chuàng)建權(quán)限不顯示按鈕 
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}'), 
], 
], 
]); ?>

現(xiàn)在我們刷新下頁面/test再看看,好像沒什么變化嘛。別急,我們現(xiàn)在撤銷當(dāng)前用戶的/test/create 權(quán)限和/test/update權(quán)限,然后你在刷新下頁面看看效果,我們截圖看看。

Yii2中rbac權(quán)限控制之菜單menu的示例分析

也就是說我們沒有權(quán)限的按鈕消失了,當(dāng)你手動訪問/test/create的時候你會發(fā)現(xiàn)也會提醒你沒有權(quán)限。

如果你的gii模板是自定義的,相信你會迅速在其生成的模板中所有的操作上添加權(quán)限控制的,是不是很happy

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“Yii2中rbac權(quán)限控制之菜單menu的示例分析”這篇文章對大家有幫助,同時也希望大家多多支持創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司,,關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識等著你來學(xué)習(xí)!

文章題目:Yii2中rbac權(quán)限控制之菜單menu的示例分析-創(chuàng)新互聯(lián)
鏈接URL:http://aaarwkj.com/article26/goojg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供營銷型網(wǎng)站建設(shè)、品牌網(wǎng)站設(shè)計、小程序開發(fā)網(wǎng)站內(nèi)鏈、靜態(tài)網(wǎng)站、品牌網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)
欧美日韩免费一区二三区| 97久久精品人妻一区二区三区| 亚洲中文字幕乱码一二三| 精品久久精品久久人妻九色| 欧美亚洲一区二区三区91| 色噜噜噜欧美人妻色综合| 亚洲精品中文字幕日本乱码| 成人黄色一级电影免费看| 国产自拍免费在线观看视频| 老湿机午夜在线免费观看| 日韩少妇一级淫片免费| 国产操大奶头女人自拍av| 人妻中出中文字幕一区| 久久九特黄的免费大片| 日韩高清在线一区二区三区| 国产精品第一区第二区| 欧美日韩69av网| 黑丝美女大战白丝美女| 99精品欧美一区二区三区视频| 性生活免费在线观看视频| 国产在线视频不卡福利片| 亚洲av一区二区三区网站| 一区二区三区欧美久久| 日韩精品一区二区三区中文| 青青草原高清在线观看| 中文字幕日日夜夜av| 亚洲丰满性感美女av| 激情五月婷婷久久激情| 国产性做爰片免费网站| 色综合亚洲一区二区小说| 懂色av中文字幕一区| 日韩精品中文字幕有码在线| 国产美女冒白浆视频免费| 岛国高清乱码中文字幕| 国产女同一区二区三区久久| 你懂的免费视频中文字幕| 午夜在线免费观看小视频| 国产视频成人免费观看| 大片天天看菲色亚洲黄色| 青青草原高清在线观看| 久久精品91久久久|