1、安装yii2-advanced
# --prefer-dist 强制使用压缩包,代码会安装到当前目录下的yii2advanced
composer create-project --prefer-dist yiisoft/yii2-app-advanced yii2advanced
cd yii2advanced
php init
# 选择0或者1, q退出
2、安装rbac
2-1
composer require mdmsoft/yii2-admin "~2.0"
# 安装在yii2advanced/vendor/mdmsoft
2-2
// 编辑yii2advanced/common/config/main.php
'modules' => [
'admin' => [
'class' => 'mdm\admin\Module',
'layout' => 'left-menu', // 显示yii2-admin组件的左侧菜单
]
...
],
...
'components' => [
...
'authManager' => [
'class' => 'yii\rbac\PhpManager', // or use 'yii\rbac\DbManager'
]
],
2-3
新建一个数据库,比如yii2advanced
编辑yii2advanced/common/config/main-local.php
<?php
return [
'components' => [
'db' => [
'class' => 'yii\db\Connection',
'dsn' => 'mysql:host=localhost;dbname=yii2advanced', // 修改1:添加数据库名
'username' => 'root',
'password' => '', // 修改2:添加数据库密码
'charset' => 'utf8',
],
'mailer' => [
'class' => 'yii\swiftmailer\Mailer',
'viewPath' => '@common/mail',
// send all mails to a file by default. You have to set
// 'useFileTransport' to false and configure a transport
// for the mailer to send real emails.
'useFileTransport' => true,
],
],
];
2-4
新建user表
./yii migrate --migrationPath=@mdm/admin/migrations
#选择yes 将创建user, menu 两个表
2-5
编辑yii2advanced/common/config/main.php
'components' => [
...
'user' => [
'identityClass' => 'mdm\admin\models\User',
'loginUrl' => ['admin/user/login'],
]
]
2-6
http://localhost/yii2advanced/backend/web/index.php?r=admin/user/signup
通过这个链接注册用户。
附:
如果2-2中authManager配置的是yii\rbac\DbManager,那么yii2advanced/common/config/main.php就要改成下面这样
'components' => [
...
'authManager' => [
'class' => 'yii\rbac\DbManager', // or use 'yii\rbac\PhpManager'
],
'user' => [
'class' => 'mdm\admin\models\User',
'identityClass' => 'mdm\admin\models\User',
'loginUrl' => ['admin/user/login'],
]
]
然后执行:
./yii migrate --migrationPath=@yii/rbac/migrations
然后删除yii2advanced/common/config/main.php中的
'class' => 'mdm\admin\models\User'
之后就可以通过如下链接来管理用户角色、权限了。
http://localhost/yii2advanced/backend/web/index.php?r=admin
http://localhost/yii2advanced/backend/web/index.php?r=admin/route
http://localhost/yii2advanced/backend/web/index.php?r=admin/permission
http://localhost/yii2advanced/backend/web/index.php?r=admin/menu
http://localhost/yii2advanced/backend/web/index.php?r=admin/role
http://localhost/yii2advanced/backend/web/index.php?r=admin/assignment
http://localhost/yii2advanced/backend/web/index.php?r=admin/user
可以这样配置允许访问的action
return [ 'modules' => [ .... ], .... 'as access' => [ 'class' => 'mdm\admin\components\AccessControl', 'allowActions' => [ 'site/*', 'admin/*', ] ] ]