vinlon / laravel-lay-admin
LayUI Admin Starter for Laravel Project
Installs: 404
Dependents: 1
Suggesters: 0
Security: 0
Stars: 1
Watchers: 1
Forks: 0
Open Issues: 0
Language:JavaScript
Requires
- bensampo/laravel-enum: ^4.2
- mews/captcha: ^3.2
- tymon/jwt-auth: ^1.0
Requires (Dev)
- dev-master
- 1.0.1
- 1.0.0
- 0.12.2
- 0.12.1
- 0.12.0
- 0.11.10
- 0.11.9
- 0.11.8
- 0.11.7
- 0.11.6
- 0.11.5
- 0.11.4
- 0.11.3
- 0.11.2
- 0.11.1
- 0.11.0
- 0.10.4
- 0.10.3
- 0.10.2
- 0.10.1
- 0.10.0
- 0.9.1
- 0.8.1
- 0.8.0
- 0.7.4
- 0.7.3
- 0.7.2
- 0.7.1
- 0.7.0
- 0.6.5
- 0.6.4
- 0.6.3
- 0.6.2
- 0.6.1
- 0.6.0
- 0.5.7
- 0.5.6
- 0.5.5
- 0.5.4
- 0.5.3
- 0.5.2
- 0.5.1
- 0.5.0
- 0.4.3
- 0.4.2
- 0.4.1
- 0.4.0
- 0.3.8
- 0.3.7
- 0.3.6
- 0.3.5
- 0.3.4
- 0.3.3
- 0.3.2
- 0.3.1
- 0.3.0
- 0.2.5
- 0.2.4
- 0.2.3
- 0.2.2
- 0.2.1
- 0.2.0
- 0.1.4
- 0.1.3
- 0.1.2
- 0.1.1
- 0.1.0
This package is auto-updated.
Last update: 2025-04-10 07:16:10 UTC
README
更新日志
v1.0.0 修改enum库版本,PHP版本最低要求为8.0
v0.8.0: 将角色改为通过枚举类定义,不再写入数据库
v0.7.1: 增加管理员密码找回功能
v0.7.0: 后台用户不再通过命令行创建,第一次打开后会进入初始化页面
v0.6.x: 增加资源管理功能,包括图片管理和内容管理,不需要手动执行db:seed初始化角色
v0.5.0: 将菜单的定义放在配置文件中(去掉admin_menus表及菜单管理页面),免去上线时同步系统菜单的步骤
v0.4.0: 更新layui版本到v2.6.4, 查看更新日志
v0.3.1: 添加表单必填项的自动处理功能
v0.3.0: api路由前缀由admin改为lay-admin,以免和业务端代码产生冲突
v0.2.4: BaseController 增加 paginateResponse 方法,简化分页数据查询的代码
使用
composer require vinlon/laravel-lay-admin
php artisan vendor:publish --provider="Vinlon\Laravel\LayAdmin\LayAdminServiceProvider" --tag=public --force
php artisan vendor:publish --provider="Vinlon\Laravel\LayAdmin\LayAdminServiceProvider" --tag=config
# 如果数据库中已经存在对应的数据表,需要先将其 drop
php artisan migrate
php artisan jwt:secret
配置建议
# 默认值为admin, 管理后台访问地址为 ${APP_URL}/admin
LAY_ADMIN_ROUTE_PREFIX=
LAY_ADMIN_DISPLAY_NAME=
# JWT Token 有效期,单位为‘分’,默认值为 60 分钟
JWT_TTL=
# 如果需要通过邮件找回密码,则需要添加邮箱相关的配置
MAIL_MAILER=smtp
MAIL_HOST={邮箱使用的smtp服务器}
MAIL_PORT=465
MAIL_USERNAME={邮箱用户名}
MAIL_PASSWORD={邮箱密码}
MAIL_ENCRYPTION=ssl
MAIL_FROM_ADDRESS={邮箱用户名}
MAIL_FROM_NAME={发件人名称}
命令
- 重置密码
php artisan lay-admin:reset-password admin admin
=====重置成功=====
当前密码为: admin
开发指引
使用auth:lay-admin middleware 对请求的登录状态进行验证
Route::group(['middleware' => ['auth:lay-admin']], function () {
//这里放置你的需要登录Admin后台API路由
});
角色定义
系统默认只添加了【超级管理员】这一个角色,如果需要更多角色,可以通过如下流程添加:
-
重新定义一个继承AdminRole的角色类
-
在getMenuIds方法中定义该角色的菜单
-
在getPrivileges方法返回该角色对应的权限
class AdminRoleExtend extends AdminRole { const TEST = '新角色测试'; /** * @return string[] */ public function getMenuIds() { $roleMenus = [ self::TEST => ['_my.profile', 'ops.setting', '_user'], ]; return Arr::get($roleMenus, $this->value, []); } /** * @return string[] */ public function getPrivileges() { $rolePrivileges = [ self::TEST => [1, 2, 3], ]; return Arr::get($rolePrivileges, $this->value, []); } }
BaseController
-
LayAdmin对数据返回的格式有统一要求,可调用 successResponse 和 errorResponse 方法分别对成功和失败的返回结果进行封装
-
分页查询的结果可以调用 paginateResponse 返回,该方法接收一个 Eloquent Builder 作为参数
表单必填项自动处理
对于如下的表单定义,框架会找到 lay-verify="required" 的元素,自动进行如下处理:
-
通过 .parent().pref('label') 找到对应的label, 在label的内容前添加必填项标记( 红色的 * )
-
将 input 元素的 layType 设置为 tips, 将错误提示的样式改为 tips
-
根据label的值(菜单名称),为input元素定义默认的 placeholder 和 lay-reqtext (请输入菜单名称)
<div class="layui-form-item"> <label class="layui-form-label">菜单名称</label> <div class="layui-input-block"> <input type="text" name="title" value="" lay-verify="required" autocomplete="off" class="layui-input"> </div> </div>
自定义请求方法
在html代码中,可使用如下方法发起HTTP请求
admin.get(url, doneCallback, options)
admin.post(url, data, doneCallback, options)
admin.postJson: function (url, data, doneCallback, options)
admin.del(url, id, doneCallback, options)