在过去的这段时间里,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的方式,将部分扩展组件商业化, 同样欢迎大家参与!