通用后台管理框架开发 laravel实战一
后台管理框架最难的通用不是写代码,是后台决定哪些代码不写。我见过太多团队一上来就搞权限、管理搞工作流、框架开搞低代码引擎,通用三个月后连登录页都没跑通。后台Laravel 给了你一套现成的管理脚手架,但脚手架不等于房子——你得先想清楚这栋楼到底住几个人。框架开 我自己的通用做法是从路由文件开始砍。打开 这个 说到中间件,Laravel 自带的 视图层我选的是 Blade + Tailwind,没上 Livewire。原因很简单:后台管理大部分页面是表格和表单,交互复杂度不高,Livewire 的响应式反而增加调试成本。Tailwind 的 这样写出来的表格样式统一,改一处全局生效。比在每个页面复制粘贴 Bootstrap 的 数据库这块,Laravel 的迁移和填充是双刃剑。迁移文件写多了,回滚一次要等半天;填充数据写少了,测试环境空荡荡没法验证分页。我的折中方案是:核心表用迁移,测试数据用 有个细节值得单独说:Laravel 的 最后提一嘴前端资源。Laravel Mix 已经够用了,没必要上 Vite 折腾。后台管理的 JS 逻辑通常不复杂,一个 框架是拿来用的,不是拿来炫的。Laravel 给了你锤子,但钉子在哪儿得自己找。routes/web.php,后台默认那行 Route::get('/',管理 ...) 直接删掉,换成后台入口:Route::prefix('admin') ->middleware(['web',框架开 'auth']) ->group(function () { Route::get('/', [DashboardController::class, 'index']); }); admin 前缀不是随便起的。它决定了你后面所有 URL 的通用形态,也决定了你什么时候该把 API 拆出去。后台我习惯把后台和前台彻底隔离在两个路由文件里,管理web.php 只留前台,后台单独建一个 admin.php,在 RouteServiceProvider 里加载。这样做的好处是权限中间件可以整组挂载,不用每个控制器再写一遍。auth 只解决了“有没有登录”,没解决“登录了能干嘛”。后台管理真正的分水岭在权限粒度上。我踩过的坑是:一开始用 Gate 定义能力,写了几十个 Gate::define,后来发现角色一多就乱。换成 spatie/laravel-permission 之后清爽很多,但要注意它默认的迁移文件会建五张表,如果你的用户表不是 users,得先改配置再跑迁移。这个细节文档里写得轻描淡写,实际卡了我半小时。@apply 指令在 Blade 组件里用起来很顺手,比如定义一个 x-table 组件:<table { { $attributes->merge(['class' => 'min-w-full divide-y divide-gray-200']) }}> { { $slot }} </table> table table-striped 强太多。Seeder 加 factory,而且只在 local 环境跑。生产环境永远只跑 migrate --force,不碰填充。artisan make:model 默认不生成 fillable,但后台表单提交时 MassAssignmentException 会直接甩你脸上。我现在的习惯是建模型时顺手加 protected $guarded = ['id'];,比一个个填 fillable 省事。当然安全上要配合表单请求验证,别让用户提交 is_admin 这种字段。app.js 加几个页面级脚本就够。我见过有人为了用 Vue 而用 Vue,结果一个删除确认弹窗写了三个组件,维护的人找半天找不到按钮在哪儿。
-
上一篇
-
下一篇
- 随机阅读
- 搜索
-
- 友情链接
-