一、确保composer正确安装及配置,参考以下命令:
执行composer self-update.确保你的composer是最新的
更新国内源
二、使用composer进行安装
安装最新的Composer Asset Plugin:composer global require "fxp/composer-asset-plugin:^1.3.1"
安装最新的advanced版本:composer create-project yiisoft/yii2-app-advanced advanced 2.0.12
三、项目初始化
命令行下切换至项目根目录,执行init命令。
回车后这里会让我们选择开发环境 0开发环境 1生产环境 这里我们选择0 开发环境,输入后回车,会让我们输入yes或者no进行确认,输入yes确认即可
此时,通过浏览器或者命令行输入yii命令可看到欢迎界面。
四、使用数据迁移命令,初始化RBAC数据库
打开 common\config\main.php 文件,在 components 数组中加入 authManager 组件,注意authManager的配置不要写错哦。
//authManager有PhpManager和DbManager两种方式,
//PhpManager将权限关系保存在文件里,这里使用的是DbManager方式,将权限关系保存在数据库.
"authManager" => [
"class" => 'yii\rbac\DbManager',
],
yii migrate --migrationPath=@yii/rbac/migrations/
五、安装yii2-admin
composer require mdmsoft/yii2-admin "~2.0"
安装好了之后,我们打开 backend\config\main.php,配置如下
return [
//......
'modules' => [
'admin' => [
'class' => 'mdm\admin\Module',
],
//......
],
'aliases' => [
'@mdm/admin' => '@vendor/mdmsoft/yii2-admin',
],
'components' => [
//......
'authManager' => [
'class' => 'yii\rbac\DbManager',
'defaultRoles' => ['guest'],
],
//......
],
'as access' => [
'class' => 'mdm\admin\components\AccessControl',
'allowActions' => [
//这里是允许访问的action,不受权限控制
//controller/action
//'*'
]
],
//......
];
以上配置完毕之后你会发现,所有后台控制器无法访问,报403没有权限错误。需要暂时取消47行的注释同意所有控制器的访问。
可以通过下列url验证安装是否成功
/index.php?r=admin
/index.php?r=admin/route
/index.php?r=admin/permission
/index.php?r=admin/role
/index.php?r=admin/assignment
六、安装yii2-adminlte-asset
composer require dmstr/yii2-adminlte-asset "2.*"
拷贝 vendor\dmstr\yii2-adminlte-asset\example-views\yiisoft\yii2-app 目录下面的文件到项目 backend\views, 可直接进行覆盖替换
七、使用数据库迁移工具,生成menu表
yii migrate/to m140602_111327_create_menu_table.php --migrationPath=@mdm/admin/migrations
通过 /index.php?r=admin/menu 访问菜单创建
八、修改布局文件,使用菜单组件
打开布局文件left.php,文件内的Html代码替换为下面的代码,代码的含义是借助yii2以及yii2-admin封装好的菜单组件,显示用户有权限的菜单。注意哦,如果用户对某操作有权限,但是你没为该权限添加菜单,这是不会显示在左侧,但是用户通过路由地址照样可以正常访问的,毕竟我们左侧管理的是菜单表!
<?php
use mdm\admin\components\MenuHelper;
use dmstr\widgets\Menu;
?>
<aside class="main-sidebar">
<section class="sidebar">
<?=
Menu::widget([
'options' => ['class' => 'sidebar-menu'],
'items' => MenuHelper::getAssignedMenu(Yii::$app->user->id)
]);
?>
</section>
</aside>
注意:此时访问后台见不到菜单的原因是,当前后台登陆用户没有菜单创建权限。可以通过以下代码创建控制器并访问。
<?php
namespace backend\controllers;
use Yii;
use yii\web\Controller;
class RbacController extends Controller
{
public function actionInit ()
{
// 这个是我们上节课添加的authManager组件,组件的调用方式没忘吧?
$auth = Yii::$app->authManager;
// 添加 "/*" 权限
$index = $auth->createPermission('/*');
$index->description = '超级管理员';
$auth->add($index);
// 创建一个角色 '超级管理员',并为该角色分配"/*"权限
$manage = $auth->createRole('超级管理员');
$auth->add($manage);
$auth->addChild($manage, $index);
// 为用户 admin(该用户的uid=1) 分配角色 "超级管理员" 权限
$auth->assign($manage, 1); // 1是admin用户的uid
}
}
执行composer self-update.确保你的composer是最新的
更新国内源
二、使用composer进行安装
安装最新的Composer Asset Plugin:composer global require "fxp/composer-asset-plugin:^1.3.1"
安装最新的advanced版本:composer create-project yiisoft/yii2-app-advanced advanced 2.0.12
三、项目初始化
命令行下切换至项目根目录,执行init命令。
回车后这里会让我们选择开发环境 0开发环境 1生产环境 这里我们选择0 开发环境,输入后回车,会让我们输入yes或者no进行确认,输入yes确认即可
此时,通过浏览器或者命令行输入yii命令可看到欢迎界面。
四、使用数据迁移命令,初始化RBAC数据库
打开 common\config\main.php 文件,在 components 数组中加入 authManager 组件,注意authManager的配置不要写错哦。
//authManager有PhpManager和DbManager两种方式,
//PhpManager将权限关系保存在文件里,这里使用的是DbManager方式,将权限关系保存在数据库.
"authManager" => [
"class" => 'yii\rbac\DbManager',
],
yii migrate --migrationPath=@yii/rbac/migrations/
五、安装yii2-admin
composer require mdmsoft/yii2-admin "~2.0"
安装好了之后,我们打开 backend\config\main.php,配置如下
return [
//......
'modules' => [
'admin' => [
'class' => 'mdm\admin\Module',
],
//......
],
'aliases' => [
'@mdm/admin' => '@vendor/mdmsoft/yii2-admin',
],
'components' => [
//......
'authManager' => [
'class' => 'yii\rbac\DbManager',
'defaultRoles' => ['guest'],
],
//......
],
'as access' => [
'class' => 'mdm\admin\components\AccessControl',
'allowActions' => [
//这里是允许访问的action,不受权限控制
//controller/action
//'*'
]
],
//......
];
以上配置完毕之后你会发现,所有后台控制器无法访问,报403没有权限错误。需要暂时取消47行的注释同意所有控制器的访问。
可以通过下列url验证安装是否成功
/index.php?r=admin
/index.php?r=admin/route
/index.php?r=admin/permission
/index.php?r=admin/role
/index.php?r=admin/assignment
六、安装yii2-adminlte-asset
composer require dmstr/yii2-adminlte-asset "2.*"
拷贝 vendor\dmstr\yii2-adminlte-asset\example-views\yiisoft\yii2-app 目录下面的文件到项目 backend\views, 可直接进行覆盖替换
七、使用数据库迁移工具,生成menu表
yii migrate/to m140602_111327_create_menu_table.php --migrationPath=@mdm/admin/migrations
通过 /index.php?r=admin/menu 访问菜单创建
八、修改布局文件,使用菜单组件
打开布局文件left.php,文件内的Html代码替换为下面的代码,代码的含义是借助yii2以及yii2-admin封装好的菜单组件,显示用户有权限的菜单。注意哦,如果用户对某操作有权限,但是你没为该权限添加菜单,这是不会显示在左侧,但是用户通过路由地址照样可以正常访问的,毕竟我们左侧管理的是菜单表!
<?php
use mdm\admin\components\MenuHelper;
use dmstr\widgets\Menu;
?>
<aside class="main-sidebar">
<section class="sidebar">
<?=
Menu::widget([
'options' => ['class' => 'sidebar-menu'],
'items' => MenuHelper::getAssignedMenu(Yii::$app->user->id)
]);
?>
</section>
</aside>
注意:此时访问后台见不到菜单的原因是,当前后台登陆用户没有菜单创建权限。可以通过以下代码创建控制器并访问。
<?php
namespace backend\controllers;
use Yii;
use yii\web\Controller;
class RbacController extends Controller
{
public function actionInit ()
{
// 这个是我们上节课添加的authManager组件,组件的调用方式没忘吧?
$auth = Yii::$app->authManager;
// 添加 "/*" 权限
$index = $auth->createPermission('/*');
$index->description = '超级管理员';
$auth->add($index);
// 创建一个角色 '超级管理员',并为该角色分配"/*"权限
$manage = $auth->createRole('超级管理员');
$auth->add($manage);
$auth->addChild($manage, $index);
// 为用户 admin(该用户的uid=1) 分配角色 "超级管理员" 权限
$auth->assign($manage, 1); // 1是admin用户的uid
}
}