Laravel-admin 发布 1.6.0 版本,以及近期的一些更新
在过去的这段时间里,laravel-admin发布了v1.5.16、v1.5.19、v1.6.0等几个版本,在这里对这几个版本中比较大的更新,做一下总结
数据详情页
在版本v1.5.16中增加了model-show用来显示数据详情
class UserController extends Controller
{
public function show($id, Content $content)
{
$show = new Show(User::findOrFail($id));
$show->name();
$show->avatar()->image();
$show->username();
$show->email();
$show->created_at();
$show->updated_at();
return $content
->header('Title')
->description('Description...')
->body($show);
}
}
对于一对一关系,用下面的方式来实现
$show->profile(function ($profile) {
$profile->homepage()->link();
$profile->mobile();
$profile->gender();
$profile->birthday();
$profile->age();
$profile->created_at();
$profile->updated_at();
});
对于一对多关系
$show->friends(function ($friend) {
$friend->name();
$friend->email();
});
效果参考demo
重构过滤器
在v1.5.18版本中重构了过滤器的样式,从原来的弹出modal,改为了嵌入表格头部,并且可以展开和收起,另外为了解决过滤器过多导致的页面太长的问题,增强了表单多列布局的功能
$filter->column(1/2, function ($filter) {
$filter->like('title');
$filter->between('rate');
});
$filter->column(1/2, function ($filter) {
$filter->equal('created_at')->datetime();
$filter->between('updated_at')->datetime();
});
用上面的代码即可实现下图的效果
有时候你可能想要定义一些常用的查询范围,能方便快速的查询到这个常用的范围,可以通过新增的scope方法实现
$filter->scope('male', '男性')->where('gender', 'm');
// 多条件查询
$filter->scope('new', '最近修改')
->whereDate('created_at', date('Y-m-d'))
->orWhere('updated_at', date('Y-m-d'));
// 关联关系查询
$filter->scope('address')->whereHas('profile', function ($query) {
$query->whereNotNull('address');
});
$filter->scope('trashed', '被软删除的数据')->onlyTrashed();
上面的代码将会在筛选按钮的右边生成一个下来菜单,点击菜单即可执行相应的查询,效果参考下面
有些场景下,对同一个字段有多种查询方式,对分数字段score的>、<、=查询, 通过新增的group方法实现
$filter->group('score', function ($group) {
$group->equal('等于');
$group->gt('大于');
$group->lt('小于');
});
实现类似下图的效果
增强命令行工具
在v1.5.19版本中增强了命令行工具,增加了三个命令admin、admin、admin:create-user、admin:reset-password, 并且增强了admin:make命令,它将会根据模型对应的表的字段来生成列表页、详情页、表单页相应的代码,
详情参考命令行工具
扩展开发
其实laravel-admin在很早的版本里面就已经支持三方扩展了,只不过一直没有时间来对这一块进行完善和推动,所以这一块的功能一直停滞不前.
在v1.6.0版本中最大的更新就是对laravel-admin的第三方扩展做了增强,在这个版本中增加了一个admin:extend命令用来生成laravel-admin扩展骨架,根据文档可以快速的开发出一个通用的laravel-admin扩展, 详细可参考扩展开发.
目前已经可用的扩展有下面一些:
| Extension | Description | laravel-admin |
|---|---|---|
| helpers | 开发帮助工具 | ~1.5 |
| media-manager | 本地文件管理器 | ~1.5 |
| api-tester | Laravel api测试工具 | ~1.5 |
| scheduling | 定时任务管理 | ~1.5 |
| redis-manager | 一个Redis 管理器 | ~1.5 |
| backup | 备份管理 | ~1.5 |
| log-viewer | Laravel日志查看 | ~1.5 |
| config | 配置管理 | ~1.5 |
| reporter | 异常查看 | ~1.5 |
| wangEditor | 一个基于 wangeditor 的富文本编辑器 | ~1.6 |
| summernote | 一个基于 summernote 的富文本编辑器 | ~1.6 |
| china-distpicker | 一个基于distpicker的中国省市区选择器 | ~1.6 |
| simplemde | 一个基于 simplemde 的markdown编辑器 | ~1.6 |
| phpinfo | 将phpinfo页面集成进laravel-admin中 |
~1.6 |
在Laravel nova发布的不到一个月的时间里,就已经有了上百个扩展了,在这方面laravel-admin的生态落后很多, 我希望如果大家在使用laravel-admin的过程中,有实现一些扩展功能,不妨按照上面的文档包装成一个laravel-admin扩展,共享给更多人使用, 另外大家如果有好的idea,也不妨分享出来,其它有时间有精力的同学或许可以和你一起实现它,laravel-admin需要更多人的参与才能形成更好的生态系统。
不久的将来,laravel-admin将会尝试参考fastadmin的方式,将部分扩展组件商业化, 同样欢迎大家参与!
本作品采用《CC 协议》,转载必须注明作者和本文链接
关于 LearnKu
推荐文章: