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'],],
    ],
],
Top