Laravel-admin 发布 1.6.0 版本,以及近期的一些更新

1,265 阅读2分钟

在过去的这段时间里,laravel-admin发布了v1.5.16v1.5.19v1.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();
});

用上面的代码即可实现下图的效果

wx20180909-211708
有时候你可能想要定义一些常用的查询范围,能方便快速的查询到这个常用的范围,可以通过新增的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();

上面的代码将会在筛选按钮的右边生成一个下来菜单,点击菜单即可执行相应的查询,效果参考下面

wx20180909-212031

有些场景下,对同一个字段有多种查询方式,对分数字段score><=查询, 通过新增的group方法实现

$filter->group('score', function ($group) {
    $group->equal('等于');
    $group->gt('大于');
    $group->lt('小于');
});

实现类似下图的效果

wx20180909-212049

增强命令行工具

v1.5.19版本中增强了命令行工具,增加了三个命令adminadminadmin:create-useradmin: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的方式,将部分扩展组件商业化, 同样欢迎大家参与!