可行但需补全三块:AdminLTE主题、yii2-admin权限模块、RBAC数据表初始化;缺一即导致白屏、403或404。

直接用 dmstr/yii2-adminlte-asset 搭后台模板是可行的,但默认不带权限、菜单、用户登录逻辑——它只负责「长得好看」。真要跑通一个可用的后台,必须补全三块:AdminLTE 主题、yii2-admin 权限模块、以及 RBAC 数据表初始化。漏掉任意一块,都会卡在白屏、403、或路由 404。
安装 dmstr/yii2-adminlte-asset 后页面空白或反复刷新
常见现象是打开 /backend/web/ 后页面不断重定向,或者控制台报 GET https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,400i,700 失败。
- 根本原因是 AdminLTE 默认加载 Google 字体和 CDN 资源,国内网络不稳定时会阻塞渲染甚至触发重试逻辑
- 解决办法不是删整个
<link>,而是定位到vendor/dmstr/yii2-adminlte-asset/example-views/yiisoft/yii2-app/layouts/main.php,删掉包含fonts.googleapis.com和cdn.jsdelivr.net的两行<link> - 别动
AdminLteAsset::register($this)这行——它是主题 CSS/JS 注入入口,删了就真白屏了 - 如果用了自定义
AppAsset,确认它没重复注册 Bootstrap 或 jQuery,否则 JS 冲突会导致侧边栏无法展开
yii2-admin 模块配置后访问 /admin 报 404 或 403
典型错误是浏览器跳转到 /admin/login 但显示 404,或直接返回 403 Forbidden。
- 先检查
backend/config/main.php中modules是否写成"admin" => ["class" => "mdm\admin\Module"],注意引号和大小写,mdm\admin\Module不是MdmAdmin\Module -
as access行为必须放在components外层(即与modules同级),放错位置会导致权限拦截器不生效 -
allowActions至少要放开"admin/*"或"site/login",否则未登录时连登录页都打不开;临时调试可设为["*"],上线前务必收紧 - 确认
authManager组件已正确配置为yii\rbac\DbManager,且数据库里已执行过vendor/yiisoft/yii2/rbac/migrations/schema-mysql.sql——没这张表,yii2-admin根本起不来
RBAC 表创建后 /admin/route 打不开或提示 “No route found”
访问 /admin/route 显示空白、500 错误,或提示 Invalid Configuration – yii\base\InvalidConfigException。
- 最常被忽略的是:执行
schema-mysql.sql后,必须手动运行yii migrate/up --migrationPath=@yii/rbac/migrations(不是php yii migrate),否则auth_rule等表缺索引,yii2-admin查询会崩 -
user表必须存在且含role字段(哪怕只是默认值),否则yii2-admin在渲染左侧菜单时会因关联查询失败而中断 - 确保
backend/config/main.php中aliases包含"@mdm/admin" => "@vendor/mdmsoft/yii2-admin",否则视图文件找不到,RouteController视图路径解析失败 - 如果使用 MySQL 8+,注意
schema-mysql.sql里部分字段用的是ENUM类型,某些严格模式下会报错,建议改用VARCHAR(20)+ 应用层校验
真正卡住人的地方从来不是「怎么装」,而是「哪张表没建」「哪个 alias 拼错了」「哪个配置项放错了层级」。尤其 as access 的位置、authManager 的 class 名、以及 schema-mysql.sql 是否真的跑进了当前数据库——这三个点出错,基本等于后台永远打不开。


















