Speedy - 简洁灵活的 Laravel 管理后台
Speedy是基于 vue2 + bootstrap 的 laravel 管理后台,能够快速开发好一个权限后台,而且能够非常方便的生成一级或者二级菜单。
项目地址: https://github.com/HanSon/speedy
欢迎前来 star 以及提 issue !
安装
laravel 5.1 以上:
composer require hanson/speedy
laravel 5.1 :
composer require hanson/speedy:~v0.5.0
配置
添加服务提供者
添加 Hanson\Speedy\SpeedyServiceProvider::class,
到 app.php
的 providers
中
发布资源
php artisan vendor:publish --provider="Hanson\Speedy\SpeedyServiceProvider"
修改配置
Speedy 的配置在 config/speedy.php
中,涉及Model的命名空间以及表名(Speedy 会根据配置生成 Models 以及 Migration)
return [
'class' => [
'namespace' => 'App\\Models\\',
'model' => [
'role' => 'Role',
'user' => 'User',
'permission' => 'Permission',
'permission_role' => 'PermissionRole',
]
],
'table' => [
'role' => 'role',
'permission' => 'permission',
'user' => 'users',
'permission_role' => 'permission_role',
],
// ...
]
安装 Speedy
php artisan speedy:install
此命令将会
- 执行
migration
- 生成
models
- 执行
seeder
, 生成默认的角色admin
- 根据
menu
生成permission
- 在
web.php
生成相关路由
创建管理员
php artisan speedy:admin admin@email.com --create
或者设置已有用户为管理员php artisan speedy:admin admin@email.com
(PS: 没错,这里是 voyager 的代码)
也许你想直接用 laravel 自带的 auth
php artisan make:auth
在生成的 LoginController
中, 修改 $redirectTo = '/home'
为 $redirectTo = '/admin'
记得更改 auth.php
的 providers
providers['users']['model'] => App\Models\User::class
运行
执行 php artisan serve
后, 访问 http://localhost:8000/admin 开启你的 Speedy
之旅吧
文档
Speedy 比较适合开发一些简单权限的后台,不适合于复杂的权限管理。
在 Speedy 中,一个菜单将会生成一个权限,当一个用户用户这个菜单的权限时,意味着这个用户能够使用该菜单的所有功能。
菜单
通过修改 config/speedy.php
的 menus ,然后执行 php artisan speedy:menu
将自动刷新权限、菜单,并且赋予管理员所有权限。
菜单的属性主要有
display
菜单显示名称url
当前菜单URLsub
是否二级菜单,包含着多个子菜单,当设置了此参数时,将会忽略参数url
target
跳转方式,默认当前打开
页面
Speedy 的页面在 resources/views/vendor/speedy
中,在 resources/views/vendor/speedy/layouts/app.blade
中,你可以给一些资源替换一些国内的CDN (使用默认的app.js 以及 app.css 会出现奇怪的问题,例如二级菜单箭头刷不出,JS 报错,然而版本都是一致的)
中间件
Speedy 配有中间件 Hanson\Speedy\Http\Middleware\SpeedyAdminMiddleware
进行权限验证
Controller 可以继承 Hanson\Speedy\Http\Controllers\BaseController
, 并重写属性 permissionName
为菜单的key即可验证权限
语言
Speedy 内置了中文语言包,源自
在 config/app.php
中设置 locale
为 zh-cn
即可
resource/lang/zh-cn/view.php
为页面的内容resource/lang/zh-cn/attribute.php
为表单验证的字段,可参考 config/validator
的key
表单验证
表单验证的 rules
位于 config/validator
中
Speedy Vs Voyager
Voyager
是一个很出色的 laravel 后台管理包,能够很好的在后台添加所需要的表单,设置其字段,达到不需要敲代码也能完成后台开发工作。但本人觉得 Voyager
有点过于使用资源,导致每个页面都会引入一堆的 CSS 以及 JS,要想去掉也是比较麻烦的事情。路由也比较庞大,也许在高配的开发电脑上体验不到,但在我家用电脑跟公司比较下,差距就放大了很多倍了。
权限思想不一样是两者最大的区别, Speedy 的权限比较特殊,没有细化到某个功能,只有某个模块,非常适合一些小型项目或者对权限要求不复杂的项目。权限并没有直接在管理后台中修改,而是通过修改菜单时才生成权限。只引入了 bootstrap
以及 vue 2
去控制页面,尽最大可能简化页面。
PS:其实一开始,我只是想写个sidebar,没想到写了个后台
本作品采用《CC 协议》,转载必须注明作者和本文链接
laravel 5.3中,
$router->aliasMiddleware('speedy.auth', SpeedyAdminMiddleware::class);
使用的aliasMiddleware好像不存在?
@alexleeyy 感谢,已修复,增加支持laravel 5.*
没看到
Vue2
用在哪呀@Enda sidebar中,没采用前后端分离
php artisan vendor:publish --provider="Hanson\Speedy\SpeedyServiceProvider"
是什么情况?Laravel5.1......
@chunlintang 当前release不支持5.1,可以执行
composer require hanson/speedy:~v0.5.0
安装5.2 开始的变动不是一般的大。
按照文档安装后出现
@skys215 你的User model要用生成的User Model,或者用已有的use model 加上 trait permissionTrait
@skys215 估计你是 auth.php 里面的model没改过来
赞
@Hanccc 哦哦,现在可以了。好像文档里没有写明这点啊?不管是中文文档还是英文文档。
@skys215 这里有写的
@Hanccc :sweat_smile:我搜的是
config/auth.php
。还有一个问题,在我这儿会这样:
没滚动条,左侧菜单栏也不能隐藏。
我还没碰过生成的代码的说,难道又是我哪里搞错了?
@skys215 你的屏幕是多少寸的?
@Hanccc 25寸 2560*1080的,但是我有分屏,浏览器占一半。所以应该是1280*1080。
@skys215 这是我的前端兼容没做好,但你最大化应该不会了吧,我上面的截图是24寸截图的,正常的效果
@Hanccc 好的。
最大化确实不会,但是我这屏幕最大化窗口就浪费空间了 :joy:
@skys215 这个我在2.0的版本会优化一下
@Hanccc 好的,谢谢。
@skys215 或者你会改前端也可以提PR
首页没有权限判断,普通用户默认不想让访问后台,应该怎么实现
@丁海军 第一,确认后台是否需要首页
如果需要,可以把默认的去掉,菜单栏增加后台首页,登录默认跳转到后台首页。
如果不需要,直接去掉这个首页即可。
大部分代码都不在vendor中,可以改的比较随心所欲
@丁海军
如果需要首页,就在菜单栏增加“后台首页”,登录跳转的代码改成根据权限判断跳转即可
如果不需要,直接去掉即可
大部分代码都不在vendor中,改的可以比较随心所欲
@Hanccc 明白了
@skys215 自适应的问题最新版本已修复
@Hanccc 收到
5.4 安装后访问/admin 提示,楼主帮忙看看·
@wind 你是没跑
php artisan make:auth
吧您好!您这个左侧菜单是没有页面生成的吗?要手动填写数据库吗?我没看见有这个功能呢
@丑男来了 有生成blade模板的
@Hanccc 那个我想生成多一个菜单的话,需要怎么操作呢?O(∩_∩)O谢谢
设置子菜单后,点击子菜单整个页面刷新,左侧菜单也刷新了。
@mjgdjh 我1366*786的屏幕,最大化就这样了
请问这个项目还在维护吗?要写个后台,在 laravel-admin、voyager、Nova 中做选择 ing,好像自定义都比较麻烦
@陈伯乐 建议使用 laravel-admin
@Hanson 好的,感谢
基于 layui 后台 html 模板免费下载 www.yujianni.top/news/comp_artinfo...