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

商冠玉
2023-12-01

在过去的这段时间里,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();
});
复制代码

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

有时候你可能想要定义一些常用的查询范围,能方便快速的查询到这个常用的范围,可以通过新增的 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版本中增强了命令行工具,增加了三个命令adminadminadmin:create-useradmin:reset-password, 并且增强了admin:make命令,它将会根据模型对应的表的字段来生成列表页、详情页、表单页相应的代码,

详情参考命令行工具

扩展开发

其实laravel-admin在很早的版本里面就已经支持三方扩展了,只不过一直没有时间来对这一块进行完善和推动,所以这一块的功能一直停滞不前.

v1.6.0版本中最大的更新就是对laravel-admin的第三方扩展做了增强,在这个版本中增加了一个admin:extend命令用来生成laravel-admin扩展骨架,根据文档可以快速的开发出一个通用的laravel-admin扩展, 详细可参考扩展开发.

目前已经可用的扩展有下面一些:

ExtensionDescriptionlaravel-admin
helpers开发帮助工具~1.5
media-manager本地文件管理器~1.5
api-testerLaravel api测试工具~1.5
scheduling定时任务管理~1.5
redis-manager一个Redis 管理器~1.5
backup备份管理~1.5
log-viewerLaravel日志查看~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
phpinfophpinfo页面集成进laravel-admin~1.6

Laravel nova发布的不到一个月的时间里,就已经有了上百个扩展了,在这方面laravel-admin的生态落后很多, 我希望如果大家在使用laravel-admin的过程中,有实现一些扩展功能,不妨按照上面的文档包装成一个laravel-admin扩展,共享给更多人使用, 另外大家如果有好的idea,也不妨分享出来,其它有时间有精力的同学或许可以和你一起实现它,laravel-admin需要更多人的参与才能形成更好的生态系统。

不久的将来,laravel-admin将会尝试参考fastadmin的方式,将部分扩展组件商业化, 同样欢迎大家参与!

 类似资料: