github 項(xiàng)目安裝流程

github 項(xiàng)目安裝流程:

composer?global?require?"fxp/composer-asset-plugin:~1.0.0"

composer?create-project?--prefer-dist?--stability=dev?yiisoft/yii2-app-advanced?www.dh.com

?init 0 yes

composer?require?dmstr/yii2-adminlte-asset?"2.*"

'components'?=>?[?'view'?=>?[?'theme'?=>?[?'pathMap'?=>?[?'@app/views'?=>?'@vendor/dmstr/yii2-adminlte-asset/example-views/yiisoft/yii2-app'?],?],?],?],

'urlManager'?=>?[

//用于表明urlManager是否啟用URL美化功能勋陪,在Yii1.1中稱為path格式URL,

//?Yii2.0中改稱美化献丑。

//?默認(rèn)不啟用顾瞪。但實(shí)際使用中袋倔,特別是產(chǎn)品環(huán)境孤钦,一般都會(huì)啟用暴区。

'enablePrettyUrl'?=>?true,?//?是否啟用嚴(yán)格解析穷遂,如啟用嚴(yán)格解析拣技,要求當(dāng)前請(qǐng)求應(yīng)至少匹配1個(gè)路由規(guī)則千诬,

//?否則認(rèn)為是無效路由。

//?這個(gè)選項(xiàng)僅在?enablePrettyUrl?啟用后才有效膏斤。

'enableStrictParsing'?=>?false,?//?是否在URL中顯示入口腳本徐绑。是對(duì)美化功能的進(jìn)一步補(bǔ)充。

'showScriptName'?=>?false,?//?指定續(xù)接在URL后面的一個(gè)后綴莫辨,如?.html?之類的傲茄。僅在?enablePrettyUrl?啟用時(shí)有效。

'suffix'?=>?'',

'rules'?=>?[

?????"<controller:\w+>/<id:\d+>"=>"<controller>/view",

?????"<controller:\w+>/<action:\w+>"=>"<controller>/<action>"

?????],

],

composerrequiremdmsoft/yii2-admin"~2.0"

return['modules'=> ['admin'=> ['class'=>'mdm\admin\Module','layout'=>'left-menu',//yii2-admin的導(dǎo)航菜單] ... ], ...'components'=> [ ...'authManager'=> ['class'=>'yii\rbac\DbManager',// 使用數(shù)據(jù)庫管理配置文件] ],'as access'=> ['class'=>'mdm\admin\components\AccessControl','allowActions'=> ['site/*',//允許訪問的節(jié)點(diǎn)沮榜,可自行添加'admin/*',//允許所有人訪問admin節(jié)點(diǎn)及其子節(jié)點(diǎn)]?],?];

yii?migrate?--migrationPath=@mdm/admin/migrations

yii?migrate?--migrationPath=@yii/rbac/migrations

1盘榨、安裝yii2

通過windows的'cmd'命令進(jìn)入dos命令窗口,執(zhí)行如下命令

composerglobalrequire"fxp/composer-asset-plugin:~1.0.0"

composercreate-project--prefer-dist--stability=devyiisoft/yii2-app-advancedwww.dh.com

這一步驟執(zhí)行時(shí)間較長蟆融,還可能讓你輸入git用戶名密碼

完成到此已經(jīng)基本安裝完成草巡,下面步驟是初始化

先進(jìn)入你的安裝的項(xiàng)目目錄 找到init腳本

執(zhí)行init腳本

init

選擇開發(fā)環(huán)境

0

是否確定選擇

yes

大功告成

未安裝的請(qǐng)參考yii2史上最簡單式安裝教程,沒有之一

已安裝的請(qǐng)繼續(xù)看下一步操作

2型酥、配置數(shù)據(jù)庫

2.1 配置數(shù)據(jù)庫

修改common/config/main-local.php 實(shí)際項(xiàng)目中本地的數(shù)據(jù)庫往往跟線上數(shù)據(jù)庫不一致山憨,

我們這里配置到main-local.php就可以了,產(chǎn)品上線后弥喉,我們可以使用git或者svn忽略掉main-local.php郁竟,線上直接部署。

我們這里使用的mysql數(shù)據(jù)庫由境,配置如下

當(dāng)然啦棚亩,上面紅圈圈的信息需要你自己手動(dòng)修改掉,要是十分巧合跟我的一樣那就不用在修改了

2.2 創(chuàng)建user數(shù)據(jù)表虏杰,我們后面要實(shí)現(xiàn)后臺(tái)登陸

說明:user表和menu表的創(chuàng)建可以參考我們后面下載的組件yii2-admin里面的sql,具體目錄位于

vendor\mdmsoft\yii2-admin\migrations\schema-mysql.sql

CREATETABLE`user`(

`id`int(11)NOTNULLAUTO_INCREMENTCOMMENT'自增ID',

`username`varchar(255)NOTNULLCOMMENT'用戶名',

`auth_key`varchar(32)NOTNULLCOMMENT'自動(dòng)登錄key',

`password_hash`varchar(255)NOTNULLCOMMENT'加密密碼',

`password_reset_token`varchar(255)DEFAULTNULLCOMMENT'重置密碼token',

`email`varchar(255)NOTNULLCOMMENT'郵箱',

`role`smallint(6)NOTNULLDEFAULT'10'COMMENT'角色等級(jí)',

`status`smallint(6)NOTNULLDEFAULT'10'COMMENT'狀態(tài)',

`created_at`int(11)NOTNULLCOMMENT'創(chuàng)建時(shí)間',

`updated_at`int(11)NOTNULLCOMMENT'更新時(shí)間',

PRIMARYKEY(`id`)

)ENGINE=InnoDBAUTO_INCREMENT=0DEFAULTCHARSET=utf8COMMENT='用戶表';

2.3 訪問frontend站點(diǎn)讥蟆,先注冊(cè)個(gè)用戶

注冊(cè)成功后,右上角會(huì)顯示登陸的狀態(tài)嘹屯,我們后面會(huì)用到這個(gè)注冊(cè)的用戶

接下來我們要開始配置后臺(tái)的模板了攻询。

3从撼、利用AdminLTE渲染后臺(tái)模板

后臺(tái)的模板我們采用利用 AdminLTE(Backend theme for Yii2 Framework)

插播一曲:AdminLTE是一個(gè)完全響應(yīng)管理模板州弟【埽基于Bootstrap3框架,易定制模板婆翔。適合多種屏幕分辨率拯杠,從小型移動(dòng)設(shè)備到大型臺(tái)式機(jī)。

內(nèi)置了多個(gè)頁面啃奴,包括儀表盤潭陪、郵箱、日歷最蕾、鎖屏依溯、登錄及注冊(cè)、404錯(cuò)誤瘟则、500錯(cuò)誤等頁面黎炉。

3.1 安裝AdminLTE

https://github.com/dmstr/yii2-adminlte-asset

打開上面的鏈接,按照操作步驟進(jìn)行安裝

這里我簡述下自己的安裝步驟醋拧,cd advanced后慷嗜,

因?yàn)槭莔ac,這里直接composer進(jìn)行安裝就行了

composerrequiredmstr/yii2-adminlte-asset"2.*"

安裝成功后丹壕,vendor目錄下會(huì)多幾個(gè)文件夾庆械,如下

3.2 yii2配置整合AdminLTE,搭建帥氣上檔次的后臺(tái)

下面我們配置下backend/config/main.php先預(yù)覽下效果,小心臟捉急的巴不得趕緊嘗嘗戰(zhàn)果

'components'=> [

'view'=> [

'theme'=> [

'pathMap'=> [

'@app/views'=>'@vendor/dmstr/yii2-adminlte-asset/example-views/yiisoft/yii2-app'

],

],

],

],

nice,頁面瞬間好看多了菌赖。

問題來了缭乘,我們是在components里面單獨(dú)配置的theme,這樣以后要修改布局文件什么的是很不方便滴,下面我們把不局文件拷貝下來覆蓋掉yii自帶的layout.

把vendor/dmstr/yii2-adminlte-asset/example-views/yiisoft/yii2-app目錄下的layouts和site拷貝?

覆蓋掉backend/views/目錄下的lauouts和site對(duì)應(yīng)的文件

覆蓋后記得屏蔽掉 components下面view的配置項(xiàng)

到此盏袄,后臺(tái)模板的搭建告一段落忿峻,si不si很happy

4、下面我們用yii的rbac實(shí)現(xiàn)后臺(tái)的權(quán)限控制

4.1 我們先配置下簡短路由

backend/config/main.php文件的compontents加上下面的配置

'urlManager'=> [

//用于表明urlManager是否啟用URL美化功能辕羽,在Yii1.1中稱為path格式URL逛尚,

// Yii2.0中改稱美化。

// 默認(rèn)不啟用刁愿。但實(shí)際使用中绰寞,特別是產(chǎn)品環(huán)境,一般都會(huì)啟用铣口。

'enablePrettyUrl'=>true,

// 是否啟用嚴(yán)格解析滤钱,如啟用嚴(yán)格解析,要求當(dāng)前請(qǐng)求應(yīng)至少匹配1個(gè)路由規(guī)則脑题,

// 否則認(rèn)為是無效路由件缸。

// 這個(gè)選項(xiàng)僅在 enablePrettyUrl 啟用后才有效。

'enableStrictParsing'=>false,

// 是否在URL中顯示入口腳本叔遂。是對(duì)美化功能的進(jìn)一步補(bǔ)充他炊。

'showScriptName'=>false,

// 指定續(xù)接在URL后面的一個(gè)后綴争剿,如 .html 之類的。僅在 enablePrettyUrl 啟用時(shí)有效痊末。

'suffix'=>'',

'rules'=> [

"<controller:\w+>/<id:\d+>"=>"<controller>/view",

"<controller:\w+>/<action:\w+>"=>"<controller>/<action>"

],

],

接下來在項(xiàng)目的根目錄 backend/web下面創(chuàng)建.htaccess文件并添加如下內(nèi)容蚕苇,這個(gè)文件你都創(chuàng)建不下來,看來是真需要再磨練磨練哦

Options+FollowSymLinks

IndexIgnore*/*

RewriteEngineon

# if a directory or a file exists, use it directlyRewriteCond%{REQUEST_FILENAME}!-f

RewriteCond%{REQUEST_FILENAME}!-d

# otherwise forward it to index.phpRewriteRule. index.php

當(dāng)然凿叠,你的apache必須要開啟rewrite模塊涩笤。

下面我們?cè)L問下gii模塊測試下

http://localhost/advanced/backend/web/gii

校驗(yàn)是可以的。

4.2 創(chuàng)建權(quán)限控制所需要的數(shù)據(jù)表

1盒件、安裝yii2

未安裝的請(qǐng)參考yii2史上最簡單式安裝教程蹬碧,沒有之一?或者參考yii2實(shí)戰(zhàn)教程之詳細(xì)安裝步驟

已安裝的請(qǐng)繼續(xù)看下一步操作

2、配置數(shù)據(jù)庫

2.1 配置數(shù)據(jù)

修改common/config/main-local.php的配置

以mysql為例

圖中的host炒刁、dbname锰茉、username和password要相應(yīng)的改為你自己的。

2.2 創(chuàng)建user數(shù)據(jù)表切心,我們后面要實(shí)現(xiàn)后臺(tái)登陸

說明:user表和menu表的創(chuàng)建可以參考我們后面下載的組件yii2-admin里面的sql,具體目錄位于

vendor\mdmsoft\yii2-admin\migrations\schema-mysql.sql

CREATETABLE`user`(

`id`int(11)NOTNULLAUTO_INCREMENT COMMENT"自增ID",

`username`varchar(255)NOTNULLCOMMENT"用戶名",

`auth_key`varchar(32)NOTNULLCOMMENT"自動(dòng)登錄key",

`password_hash`varchar(255)NOTNULLCOMMENT"加密密碼",

`password_reset_token`varchar(255)DEFAULTNULLCOMMENT"重置密碼token",

`email`varchar(255)NOTNULLCOMMENT"郵箱",

`role`smallint(6)NOTNULLDEFAULT"10"COMMENT"角色等級(jí)",

`status`smallint(6)NOTNULLDEFAULT"10"COMMENT"狀態(tài)",

`created_at`int(11)NOTNULLCOMMENT"創(chuàng)建時(shí)間",

`updated_at`int(11)NOTNULLCOMMENT"更新時(shí)間",

PRIMARYKEY(`id`)

)ENGINE=InnoDBAUTO_INCREMENT=0DEFAULTCHARSET=utf8 COMMENT="用戶表";

2.3 訪問frontend站點(diǎn)飒筑,先注冊(cè)個(gè)用戶

注冊(cè)成功后,右上角會(huì)顯示登陸的狀態(tài)绽昏,我們后面會(huì)用到這個(gè)注冊(cè)的用戶

接下來我們要開始配置后臺(tái)的模板了协屡。

3、利用AdminLTE渲染后臺(tái)模板

后臺(tái)的模板我們采用利用?AdminLTE(Backend theme for Yii2 Framework)

插播一曲:AdminLTE是一個(gè)完全響應(yīng)管理模板全谤》粝基于Bootstrap3框架,易定制模板认然。適合多種屏幕分辨率补憾,從小型移動(dòng)設(shè)備到大型臺(tái)式機(jī)。

內(nèi)置了多個(gè)頁面卷员,包括儀表盤盈匾、郵箱、日歷毕骡、鎖屏削饵、登錄及注冊(cè)、404錯(cuò)誤未巫、500錯(cuò)誤等頁面窿撬。

3.1 安裝AdminLTE

https://github.com/dmstr/yii2-adminlte-asset

打開上面的鏈接,按照操作步驟進(jìn)行安裝

這里我簡述下自己的安裝步驟叙凡,cd advanced后劈伴,

composerrequiredmstr/yii2-adminlte-asset"2.*"

composer無法安裝的,請(qǐng)移步這里

3.2 利用AdminLTE的demo模板,搭建帥氣上檔次的管理后臺(tái)

拷貝 vendor/dmstr/yii2-adminlte-asset/example-views/yiisoft/yii2-app 目錄下的layouts和site目錄以及文件

覆蓋掉backend/views/目錄下的lauouts和site對(duì)應(yīng)的文件

刷新下后臺(tái)的界面握爷,是不是有一種很happy的feel~

4跛璧、完善rbac權(quán)限管理

4.1 配置簡短路由

backend/config/main.php文件的compontents加上下面的配置

"urlManager"=> [

//用于表明urlManager是否啟用URL美化功能苏遥,在Yii1.1中稱為path格式URL,

// Yii2.0中改稱美化赡模。

// 默認(rèn)不啟用。但實(shí)際使用中师抄,特別是產(chǎn)品環(huán)境漓柑,一般都會(huì)啟用。

"enablePrettyUrl"=>true,

// 是否啟用嚴(yán)格解析叨吮,如啟用嚴(yán)格解析辆布,要求當(dāng)前請(qǐng)求應(yīng)至少匹配1個(gè)路由規(guī)則,

// 否則認(rèn)為是無效路由茶鉴。

// 這個(gè)選項(xiàng)僅在 enablePrettyUrl 啟用后才有效锋玲。

"enableStrictParsing"=>false,

// 是否在URL中顯示入口腳本。是對(duì)美化功能的進(jìn)一步補(bǔ)充涵叮。

"showScriptName"=>false,

// 指定續(xù)接在URL后面的一個(gè)后綴惭蹂,如 .html 之類的。僅在 enablePrettyUrl 啟用時(shí)有效割粮。

"suffix"=>"",

"rules"=> [

"<controller:\w+>/<id:\d+>"=>"<controller>/view",

"<controller:\w+>/<action:\w+>"=>"<controller>/<action>"

],

],

4.2 配置web server

如果你用apache作為你的web服務(wù)器盾碗,可以參考下面的配置

在應(yīng)用的目錄 backend/web下面創(chuàng)建.htaccess文件并添加如下內(nèi)容,這個(gè)文件你都創(chuàng)建不下來舀瓢,看來是真需要再磨練磨練哦

Options+FollowSymLinks

IndexIgnore*/*

RewriteEngineon# if a directory or a file exists, use it directlyRewriteCond%{REQUEST_FILENAME}!-f

RewriteCond%{REQUEST_FILENAME}!-d

# otherwise forward it to index.phpRewriteRule. index.php

當(dāng)然廷雅,前提是你的apache必須要開啟rewrite模塊。

nginx用戶京髓,修改你的server段航缀,參考如下

server{

listen80;

server_nameyourdomain;

root/var/www/yourdirectory/backend/web;

indexindex.php index.html;

charsetutf-8;

location/ {

try_files$uri$uri/ /index.php$is_args$args;

}

location~ \.php${

fastcgi_pass127.0.0.1:9000;

fastcgi_indexindex.php;

fastcgi_paramSCRIPT_FILENAME$document_root$fastcgi_script_name;

includefastcgi_params;

}

}

配置好了記得重啟你的web server哦,我們校驗(yàn)下“隱藏index.php”的配置是否正確

http://localhost/advanced/backend/web/gii

可以正常打開即沒問題堰怨。

4.3 創(chuàng)建權(quán)限控制所需要的數(shù)據(jù)表

默認(rèn)yii2都給我們準(zhǔn)備好了芥玉,打開 vendor/yiisoft/yii2/rbac/migrations/schema-mysql.sql 文件,依次創(chuàng)建數(shù)據(jù)表

提示一下备图,手動(dòng)創(chuàng)建數(shù)據(jù)表的時(shí)候不要光顧著復(fù)制粘貼飞傀,要指定charset和engine.如果你用migrate創(chuàng)建那就不說什么了。

`auth_assignment`;

`auth_item_child`;

`auth_item`;

`auth_rule`;

另外補(bǔ)充菜單menu表诬烹,需要的自行創(chuàng)建

說明:user表和menu表的創(chuàng)建可以參考 vendor\mdmsoft\yii2-admin\migrations\schema-mysql.sql

CREATETABLE`menu`(

`id`int(11)NOTNULLAUTO_INCREMENT,

`name`varchar(128)NOTNULL,

`parent`int(11)DEFAULTNULL,

`route`varchar(256)DEFAULTNULL,

`order`int(11)DEFAULTNULL,

`data`text,

PRIMARYKEY(`id`),

KEY`parent`(`parent`),

CONSTRAINT`menu_ibfk_1`FOREIGNKEY(`parent`)REFERENCES`menu`(`id`)ONDELETESETNULLONUPDATECASCADE

)ENGINE=InnoDBDEFAULTCHARSET=utf8

4.4 下載安裝 yii2-admin

參考?https://github.com/mdmsoft/yii2-admin

按照步驟一步一步安裝即可砸烦,同adminlte的安裝

安裝好了可以在 vendor 目錄下看到 mdmsoft 目錄

4.5 權(quán)限配置

打開backend/config/main.php 修改配置

"modules"=> [

"admin"=> [

"class"=>"mdm\admin\Module",

],

],

"aliases"=> [

"@mdm/admin"=>"@vendor/mdmsoft/yii2-admin",

],

//這里必須添加authManager配置項(xiàng)"components"=> [

...

//components數(shù)組中加入authManager組件,有PhpManager和DbManager兩種方式,

//PhpManager將權(quán)限關(guān)系保存在文件里,這里使用的是DbManager方式,將權(quán)限關(guān)系保存在數(shù)據(jù)庫.

"authManager"=> [

"class"=>'yii\rbac\DbManager',//這里記得用單引號(hào)而不是雙引號(hào)

"defaultRoles"=> ["guest"],

],

...

],

//嚴(yán)重警告!=视酢幢痘!as access位置不要添加錯(cuò)了,已經(jīng)不少同學(xué)都掉坑里了<移啤Q账怠购岗!'as access'=> [

'class'=>'mdm\admin\components\AccessControl',

'allowActions'=> [

//這里是允許訪問的action

//controller/action

]

],

友好提示:請(qǐng)額外花10秒鐘檢查下你的as access配置,因?yàn)楹芏嗳硕寂渲玫搅薱omponents里门粪,這是錯(cuò)誤的喊积。

4.5 校驗(yàn)權(quán)限模塊是否有效

如果此時(shí)你不小心刷新了頁面你會(huì)發(fā)現(xiàn),不管你訪問什么頁面玄妈,都會(huì)提示你403了乾吻,也就是沒權(quán)限進(jìn)行操作了!

也就證明了我們權(quán)限添加是正確的拟蜻。但是绎签,如此一來我們也就不方便往下進(jìn)行了。為了繼續(xù)酝锅,我們先屏蔽掉權(quán)限诡必,也就是先讓權(quán)限失效,只需要配置as access中允許所有操作都可以訪問即可搔扁。

'as access'=> [

'class'=>'mdm\admin\components\AccessControl',

'allowActions'=> [

//這里是允許訪問的action

'*'

]

],

需要提醒你的是爸舒,我們后面對(duì)權(quán)限完善了以后,記得把*改回來稿蹲!

現(xiàn)在我們?cè)偻ㄟ^路由訪問我們剛剛添加好的權(quán)限模塊 http://localhost/advanced/backend/web/admin/route

嗯碳抄,界面是有的了,下面我們加快腳步驗(yàn)收下我們的權(quán)限這塊到底成還是不成呢场绿?

一般來說到這一步就ok的了剖效。后面的可以自己摸索著添加路由分配權(quán)限了。

下面我們?cè)谧髠?cè)菜單上把權(quán)限的欄目加上,代碼可直接復(fù)制焰盗,放置于 <section class="sidebar"></section>標(biāo)簽內(nèi)即可

<ul?class="sidebar-menu">? ? ? ? ? ?

? ?<li?class="treeview">? ? ? ? ? ? ? ?

? ? ? ?<a?href="#">? ? ? ? ? ? ? ? ? ?

? ? ? ? ? ?<i?class="fa?fa-gears"></i>?<span>權(quán)限控制</span>? ? ? ? ? ? ? ? ? ?

? ? ? ? ? ?<i?class="fa?fa-angle-left?pull-right"></i>? ? ? ? ? ? ? ?

? ? ? ?</a>? ? ? ? ? ? ? ?

? ? ? ?<ul?class="treeview-menu">? ? ? ? ? ? ? ? ? ?

? ? ? ? ? ?<li?class="treeview">? ? ? ? ? ? ? ? ? ? ? ?

? ? ? ? ? ? ? ?<a?href="/admin">管理員</a>? ? ? ? ? ? ? ? ? ? ? ?

? ? ? ? ? ? ? ?<ul?class="treeview-menu">? ? ? ? ? ? ? ? ? ? ? ? ? ?

? ? ? ? ? ? ? ? ? ?<li><a?href="/user"><i?class="fa?fa-circle-o"></i>?后臺(tái)用戶</a></li>? ? ? ? ? ? ? ? ? ? ? ? ? ?

? ? ? ? ? ? ? ? ? ?<li?class="treeview">? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

? ? ? ? ? ? ? ? ? ? ? ?<a?href="/admin/role">? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

? ? ? ? ? ? ? ? ? ? ? ? ? ?<i?class="fa?fa-circle-o"></i>?權(quán)限?<i?class="fa?fa-angle-left?pull-right"></i>? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

? ? ? ? ? ? ? ? ? ? ? ?</a>? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

? ? ? ? ? ? ? ? ? ? ? ?<ul?class="treeview-menu">? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

? ? ? ? ? ? ? ? ? ? ? ? ? ?<li><a?href="/admin/route"><i?class="fa?fa-circle-o"></i>?路由</a></li>? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

? ? ? ? ? ? ? ? ? ? ? ? ? ?<li><a?href="/admin/permission"><i?class="fa?fa-circle-o"></i>?權(quán)限</a></li>? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

? ? ? ? ? ? ? ? ? ? ? ? ? ?<li><a?href="/admin/role"><i?class="fa?fa-circle-o"></i>?角色</a></li>? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

? ? ? ? ? ? ? ? ? ? ? ? ? ?<li><a?href="/admin/assignment"><i?class="fa?fa-circle-o"></i>?分配</a></li>? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

? ? ? ? ? ? ? ? ? ? ? ? ? ?<li><a?href="/admin/menu"><i?class="fa?fa-circle-o"></i>?菜單</a></li>? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

? ? ? ? ? ? ? ? ? ? ? ?</ul>? ? ? ? ? ? ? ? ? ? ? ? ? ?

? ? ? ? ? ? ? ? ? ?</li>? ? ? ? ? ? ? ? ? ? ? ?

? ? ? ? ? ? ? ?</ul>? ? ? ? ? ? ? ? ? ?

? ? ? ? ? ?</li>? ? ? ? ? ? ? ?

? ? ? ?</ul>? ? ? ? ? ?

? ?</li>? ? ? ?

</ul>

我們看下效果圖璧尸,這樣一來,我們對(duì)權(quán)限進(jìn)行操作就十分的方便了

如此熬拒,我們的權(quán)限控制基本告一段落了爷光,關(guān)于權(quán)限需要說明的是:

你應(yīng)該先添加路由,然后添加權(quán)限名稱澎粟,后再對(duì)角色或個(gè)人進(jìn)行權(quán)限的獨(dú)立分配蛀序。這一點(diǎn)還請(qǐng)新手謹(jǐn)記!

rbac具體的操作步驟可以參考這里?yii2 rbac權(quán)限控制詳細(xì)操作步驟活烙,如果你是新手或者第一次使用yii2-admin徐裸,我還是非常建議你看看該操作步驟,以便熟悉整個(gè)操作環(huán)節(jié)啸盏。

5重贺、如何利用menu對(duì)菜單進(jìn)行控制?

4.5步驟中我們是直接寫ul li的方式對(duì)左側(cè)菜單進(jìn)行操作的,這樣也是能夠?qū)崿F(xiàn)通過菜單對(duì)權(quán)限進(jìn)行控制滴气笙。但是喃次企,一來不方便操作,而來增加修改個(gè)什么東東都得需要我們?nèi)バ薷某绦驅(qū)崿F(xiàn)潜圃,這也TTM不方便了缸棵。還好我們家有妙招,DDV殺殺殺谭期。

好了堵第,又扯遠(yuǎn)了。仔細(xì)回想崇堵,是不是我們創(chuàng)建的123456張表還有一張menu表沒有利用到喃?這貨怎么利用喃客燕?來鸳劳,我們回歸正題。

首選也搓,我們?cè)L問/admin/menu/index添加幾個(gè)一級(jí)菜單赏廓,姑且叫做一級(jí)1,一級(jí)2傍妒,一級(jí)3吧幔摸,哦對(duì)了,忘記添加路由了颤练,怎么回事呢既忆,我們先訪問/admin/route/index 把左側(cè)的路由移動(dòng)到右側(cè),不然上面創(chuàng)建新菜單會(huì)失敗哦嗦玖。創(chuàng)建菜單時(shí)患雇,[映射][數(shù)據(jù)]我們暫且不填寫。(其具體含義我們會(huì)在菜單一文中進(jìn)行詳細(xì)描述)

添加完畢之后呢宇挫,我們打開布局文件left.php,use兩個(gè)類文件苛吱,分別是yii\bootstrap\Nav和mdm\admin\components\MenuHelper;

獲取權(quán)限的操作 MenuHelper::getAssignedMenu都幫我們做好了。

ok,我們刪掉4.5添加的sidebar-menu菜單器瘪,添加下面的代碼試試看

echoNav::widget(

[

"encodeLabels"=>false,

"options"=> ["class"=>"sidebar-menu"],

"items"=> MenuHelper::getAssignedMenu(Yii::$app->user->id),

]

);

現(xiàn)在菜單控制權(quán)限我們基本上是ok了翠储,現(xiàn)在你可以繼續(xù)添加菜單試試效果如何。

到此呢橡疼,我們的后臺(tái)和rbac的權(quán)限控制可以說是做得非常完美了援所。但是,此篇文章僅僅是搭建后臺(tái)的第一步欣除,篇幅有限再加上說多了各位分不清重難點(diǎn)任斋,相關(guān)的幾篇系列文章,還請(qǐng)耐心的花點(diǎn)時(shí)間繼續(xù)看下去!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末废酷,一起剝皮案震驚了整個(gè)濱河市瘟檩,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌澈蟆,老刑警劉巖墨辛,帶你破解...
    沈念sama閱讀 212,454評(píng)論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異趴俘,居然都是意外死亡睹簇,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,553評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門寥闪,熙熙樓的掌柜王于貴愁眉苦臉地迎上來太惠,“玉大人,你說我怎么就攤上這事疲憋≡湓ǎ” “怎么了?”我有些...
    開封第一講書人閱讀 157,921評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵缚柳,是天一觀的道長埃脏。 經(jīng)常有香客問我,道長秋忙,這世上最難降的妖魔是什么彩掐? 我笑而不...
    開封第一講書人閱讀 56,648評(píng)論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮灰追,結(jié)果婚禮上堵幽,老公的妹妹穿的比我還像新娘。我一直安慰自己弹澎,他們只是感情好谐檀,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,770評(píng)論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著裁奇,像睡著了一般桐猬。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上刽肠,一...
    開封第一講書人閱讀 49,950評(píng)論 1 291
  • 那天溃肪,我揣著相機(jī)與錄音,去河邊找鬼音五。 笑死惫撰,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的躺涝。 我是一名探鬼主播厨钻,決...
    沈念sama閱讀 39,090評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼!你這毒婦竟也來了夯膀?” 一聲冷哼從身側(cè)響起诗充,我...
    開封第一講書人閱讀 37,817評(píng)論 0 268
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎诱建,沒想到半個(gè)月后蝴蜓,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,275評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡俺猿,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,592評(píng)論 2 327
  • 正文 我和宋清朗相戀三年茎匠,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片押袍。...
    茶點(diǎn)故事閱讀 38,724評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡诵冒,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出谊惭,到底是詐尸還是另有隱情汽馋,我是刑警寧澤,帶...
    沈念sama閱讀 34,409評(píng)論 4 333
  • 正文 年R本政府宣布午笛,位于F島的核電站惭蟋,受9級(jí)特大地震影響苗桂,放射性物質(zhì)發(fā)生泄漏药磺。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,052評(píng)論 3 316
  • 文/蒙蒙 一煤伟、第九天 我趴在偏房一處隱蔽的房頂上張望癌佩。 院中可真熱鬧,春花似錦便锨、人聲如沸围辙。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,815評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽姚建。三九已至,卻和暖如春吱殉,著一層夾襖步出監(jiān)牢的瞬間掸冤,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,043評(píng)論 1 266
  • 我被黑心中介騙來泰國打工友雳, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留稿湿,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,503評(píng)論 2 361
  • 正文 我出身青樓押赊,卻偏偏與公主長得像饺藤,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,627評(píng)論 2 350

推薦閱讀更多精彩內(nèi)容