gxcok/yii2-admin 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

gxcok/yii2-admin

最新稳定版本:v1.0.0

Composer 安装命令:

composer require gxcok/yii2-admin

包简介

RBAC Auth manager for Yii2

README 文档

README

作者博客

作者博客

简介

使用的 ace admin 前端框架, 为yii2开发的一个后台模块; 对于二次开发比较方便,包含了基本的后台功能

功能特性

  • 包含基本的后台功能

    • 管理员管理: 登录、登出、修改密码等
    • 菜单管理: 可视化动态菜单、根据权限显示菜单
    • 权限管理: 角色、权限、用户的管理
  • 使用yii2自带的RBAC权限管理

  • 对于二次开发比较方便

    • 定义基本控制器(封装了基本的CURD操作), 后续开发基于基础控制器继承修改
    • 拥有代码生成功能(类似于gii), 可视化生成代码模板, 简单操作即可生成 控制器controller、模型model, 视图views 文件,提高开发效率

安装

安装要求

  • PHP >= 7.4
  • MySQL

全新项目安装

先使用命令安装yii2-app-advanced

composer create-project --prefer-dist yiisoft/yii2-app-advanced yii2-advanced

再安装

composer require gxcok/yii2-admin

在已有项目中安装

使用 composer 下载包文件

composer require gxcok/yii2-admin

配置模块信息

在你的 main.php 配置文件中添加下面配置

return [
    'modules' => [
        'admin' => [
            'class' => 'gxcok\admin\Module',
            // 使用的登录用户组件
            'user' => 'admin',
            // 配置退出登录地址
            'logoutUrl' => 'default/logout', // 默认就是default/logout
            // 验证码验证地址
            'captchaAction' => 'default/captcha', // 默认值为null 使用的就是default/captcha
        ]
    ],
    'components' => [
        
        // 后台登录用户组件信息
        'admin' => [
            'class'           => 'yii\web\User',
            'identityClass'   => 'gxcok\admin\models\Admin',
            'enableAutoLogin' => true,
            'loginUrl'        => ['/admin/admin/default/login'],
            'idParam'         => '_adminId',
            'identityCookie'  => ['name' => '_admin', 'httpOnly' => true],
        ],
        
        // 后台使用的语言配置信息
        'i18n' => [
            'translations' => [
                'admin' => [
                    'class'          => 'yii\i18n\PhpMessageSource',
                    'sourceLanguage' => 'en',
                    'basePath'       => '@gxcok/admin/messages'
                ],
            ],
        ],
        
        // 配置权限使用数据库
        'authManager'  => [
            'class' => 'yii\rbac\DbManager',
        ],
                
    ]
];

在你的 params.php 配置文件添加如下配置信息

return [
    // 这个配置是为了导入权限信息需要配置的,就是配置后台模块的路径 
    'admin_rule_prefix' => 'admin',                        

    // 登录成功首页是否需要显示其他信息
    'projectOpenOther' => true,
    
    // 项目信息
    'projectName'      => 'Yii2 后台管理系统',              
    'projectTitle'     => 'Yii2 后台管理系统',
    'companyName'      => '<span class="blue bolder"> gxcok </span> Yii2 Admin 项目 &copy; 2025',  
];

使用数据库迁移、导入后台所需的数据库信息、需要顺序执行下面命令

需要配置 console

console 配置中的 components 组件中加入权限配置信息

return [
    'components' => [
        // 权限配置
        'authManager'  => [
            'class' => 'yii\rbac\DbManager',
        ],
    ],
];
  • 高级版本的配置文件在 console/config/main.php

导入权限表信息

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

导入后台表信息和默认权限、菜单信息

php yii migrate --migrationPath=@gxcok/admin/migrations

你可以愉快的使用了

访问地址

// 登录地址、域名需要根据你的域名修改
http://localhost/path/to?index.php?r=admin/default/login

默认的账号和密码

  1. 超级管理员

    • username: super
    • password: admin123
  2. 普通管理员

    • username: admin
    • password: admin888

在自己模块中使用

Yii2 高级版本中使用

定义一个基础控制,其他控制器都继承基础控制器

  1. 控制器继承gxcok\admin\controllers\Controller
    • 定义控制器使用的布局文件为 @gxcok/admin/views/layouts/main
    • 定义上传文件表单类使用自己的 ,例如:backend\models\forms\UploadForm
  2. 如果要记录操作日志和权限验证,定义行为
    • 记录日志行为类: gxcok\admin\behaviors\Logging

      默认只会记录: create, update, delete, delete-all, editable, upload 操作的日志, 需要添加或者修改,定义needLogActions 属性

    • 权限验证行为类: yii\filters\AccessControl

例子:

namespace backend\controllers;

use gxcok\admin\behaviors\Logging;
use gxcok\admin\controllers\Controller as BaseController;
use yii\filters\AccessControl;

/**
 * Class Controller 后台的基础控制器
 * @package backend\controllers
 */
class Controller extends BaseController
{
    /**
     * @var string 使用 yii2-admin 的布局
     */
    public $layout = '@gxcok/admin/views/layouts/main';
    
    /**
     * @var string 使用自己定义的上传文件处理表单
     */
    public $uploadFromClass = 'backend\models\forms\UploadForm';
    
    /**
     * 定义使用的行为
     *
     * @return array
     */
    public function behaviors()
    {
        return [
            'access' => [
                'class' => AccessControl::className(),
                'rules' => [
                    [
                        'allow'       => true,
                        'permissions' => [$this->action->getUniqueId()],
                    ],
                ],
            ],
            
            'logging' => [
                'class' => Logging::className(),
            ],
        ];
    }
}

后台预览

  1. 登录页面 登录页
  2. 数据显示 数据显示
  3. 数据编辑 数据显示
  4. 权限分配 权限分配
  5. 代码生成 代码生成

统计信息

  • 总下载量: 1
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: JavaScript

其他信息

  • 授权协议: BSD-3-Clause
  • 更新时间: 2025-07-23