yii2-admin
- 2018-10-17
- 545 人已阅读
下载yii2-admin
版本:2.8(2018年8月29日)
composer require mdmsoft/yii2-admin "~2.0"
创建授权表和前台用户表
通过命令方式创建授权表
找到项目所在目录,在控制台执行命令
yii migrate --migrationPath=@yii/rbac/migrations
会在数据库中生成4张表:
- itemTable: 该表存放授权条目(译者注:即角色和权限)。默认表名为 "auth_item" 。
- itemChildTable: 该表存放授权条目的层次关系。默认表名为 "auth_item_child"。
- assignmentTable: 该表存放授权条目对用户的指派情况。默认表名为 "auth_assignment"。
- ruleTable: 该表存放规则。默认表名为 "auth_rule"。
通过sql导入授权表
打开 vendor/yiisoft/yii2/rbac/migrations/schema-mysql.sql 文件,导入到数据库中即可.
通过命令方式创建前台用户表和菜单表
yii migrate --migrationPath=@mdm/admin/migrations
上面的命令会在数据库创建user
表和menu
表。
通过sql文件导入创建前台用户表和菜单表
打开vendor\mdmsoft\yii2-admin\migrations\ schema-mysql.sql 文件,导入到数据库中即可.
创建后台用户表Adminuser
根据实际需求,参考前台表创建后台用户表
配置yii2-admin
配置yii2-admin运行环境
因为仅将权限控制应用于后台backend模块,所以这里将配置写到<project>/backend/config/main.php
文件里,依次小心添加如下内容。
return [
'modules' => [
'admin' => [
'class' =>
'mdm\admin\Module',
'layout' =>
'left-menu',
//yii2-admin的导航菜单
]
...
],
'aliases' => [
'@mdm/admin' => '@vendor/mdmsoft/yii2-admin',
...
'components' => [
...
'user' => [
'enableAutoLogin' => false, // 输入网址后首先进入login页面,初次可设为true。
'identityClass' => 'common\models\Adminuser',
// 指向后台管理员用户表
...
],
...
'authManager' => [
'class' =>
'yii\rbac\DbManager',
// 使用数据库管理配置文件
'defaultRoles' => ['guest'],
]
],
'as access' => [
'class' =>
'mdm\admin\components\AccessControl',
'allowActions' => [
'site/*',
//允许访问的节点,可自行添加
'admin/*',
//允许所有人访问admin节点及其子节点
]
],
];
配置简短路由
<project>/backend/config/main.php
文件的compontents
数组里加上下面的配置:
"urlManager" => [
"enablePrettyUrl" =>
true,
"enableStrictParsing" =>
false,
"showScriptName" =>
false,
"suffix" =>
"",
"rules" => [
"<controller:\w+>/<id:\d+>"=>
"<controller>/view",
"<controller:\w+>/<action:\w+>"=>
"<controller>/<action>"
],
],
配置apache
在项目的根目录 <project>/backend/web下面创建.htaccess文件并添加如下内容
Options +FollowSymLinks
IndexIgnore */*
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php
或者将以上内容粘贴到apache的httpd-vhosts.conf中backend部分。
修改左侧菜单
模板文件在<project>/backend/views/layouts/left.php
,在items
数组中加入如下代码:
['label' => '
管理员列表
'
, 'icon' => ' fa-user-secret', 'url' => ['/adminuser/index']],
[
'label' =>
'权限管理',
'icon' =>
'fa fa-circle-o',
'url' =>
'javascript:;',
'items' => [
[
'label' =>
'路由管理',
'icon' =>
'fa fa-circle-o',
'url' => [
'/admin/route'],],
[
'label' =>
'权限管理',
'icon' =>
'fa fa-circle-o',
'url' => [
'/admin/permission'],],
[
'label' =>
'角色管理',
'icon' =>
'fa fa-circle-o',
'url' => [
'/admin/role'],],
[
'label' =>
'用户与角色',
'icon' =>
'fa fa-circle-o',
'url' => [
'/admin/assignment'],],
[
'label' =>
'菜单管理',
'icon' =>
'fa fa-circle-o',
'url' => [
'/admin/menu'],],
],
],