全新扩展系统上线了!发布Dcat Admin v2.0.0-BETA 版本~
发布时间 - 2020-10-20 00:00:00 点击率:次下面由laravel教程栏目给大家介绍dcat admin v2.0.0-beta 版本发布,希望对需要的朋友有所帮助!
Dcat Admin 是一个基于Laravel-admin二次开发而成的后台构建工具,只需很少的代码即可构建出一个功能完善的高颜值后台系统。
前言
Hi,各位同学大家好!时隔多日,Dcat Admin终于迎来了2.0的第一个版本,下面简单介绍一下主要变化,欢迎大家安装体验,如果有问题会即时修复~
安装
已发布 v2.0.1-beta 版本
composer require dcat/laravel-admin:v2.0.1-beta -vvv
有什么变化?
1.扩展
我们在这个版本中重点优化了 扩展 功能,主要简化了扩展的使用流程,让用户可以通过页面安装、卸载、升级扩展,并且同时支持了页面压缩包和composer两种安装方式。正式版发布时会上线应用市场功能,敬请期待~
详细使用文档即将在本周内逐步更新~
2.增强表单布局能力
在2.0中,我们对数据表单的block布局功能进行了重构,使其支持更复杂的布局,示例
$form->block(8, function (Form\BlockForm $form) {
$form->title('基本设置');
$form->showFooter();
$form->width(9, 2);
$form->column(6, function (Form\BlockForm $form) {
$form->display('id');
$form->text('name');
$form->email('email');
$form->image('avatar');
$form->password('password');
});
$form->column(6, function (Form\BlockForm $form) {
$form->text('username');
$form->email('mobile');
$form->textarea('description');
});
});
$form->block(4, function (Form\BlockForm $form) {
$form->title('分块2');
$form->text('nickname');
$form->number('age');
$form->radio('status')->options(['1' => '默认', 2 => '冻结'])->default(1);
$form->next(function (Form\BlockForm $form) {
$form->title('分块3');
$form->date('birthday');
$form->date('created_at');
});
});
2.0也支持在tab布局中嵌套使用column和rows布局,如
这个功能同时支持
数据表单和工具表单
$form->tab('标题', function (Form $form) {
$form->column(6, function (Form $form) {
...
});
$form->column(6, function (Form $form) {
...
});});3.重构表单响应方法
在1.0版本中表单的响应方法只有success、error和redirect,无法满足一些比较复杂的场景,在2.0中我们让表单的响应方法和action的响应方法统一了起来,使其支持更多功能,并减少开发者的学习成本。
在数据表单中
$form->saving(function (Form $form) {
return $form
->response()
->success('保存成功')
->script('console.log("执行JS代码")')
->redirect('auth/users');});在工具表单中
public function handle(array $input){
...
return $this
->response()
->alert()
->success('成功')
->detail('详细内容');}4.JS 代码和 PHP 代码分离
这个功能是对laravel-admin2.0版本新特性的跟进,在2.0中更推荐把JS代码放到视图文件中,示例
{!! $label !!}
@include('admin::form.error')
@if ($append)
{!! $append !!}
@endif
@include('admin::form.help-block')
和 标签中的代码,将会被提取编译,并实现 Admin::script() 和 Admin::style() 同样的处理效果,需要注意的是 和 必须是根标签,不能被包裹在其他标签中,否则会提取失败!
5.重构表格列选择器功能
在1.x中的列选择器中有一些兼容性问题,不能兼容一些特殊类型的表格,所以2.0中我们对列选择器功能进行了重构,并废弃了旧的api(responsive)。
新的列选择器功能可以完美兼容固定列和组合表头功能,并且支持记住用户操作功能,会自动记住用户的选择,效果如下
6.重构表格事件
在1.0表格的事件设计得比较随意、不规范,所以我们在2.0中对表格事件进行了重构,并增加了一些事件,新的表格事件用法如下
use Dcat\Admin\Grid;
Grid::make(new Model(), function (Grid $grid) {
$grid->listen(Grid\Events\Fetching::class, function (Grid $grid) {
...
});
});如果你想监听所有的Grid
use Dcat\Admin\Grid;
use Illuminate\Support\Facades\Event;
Event::listen(Grid\Events\Fetching::class, function (Grid $grid) {
...
});
// 或者
Grid::resolving(function (Grid $grid) {
$grid->listen(Grid\Events\Fetching::class, function (Grid $grid) {
...
});
});关于事件的更多用法,请参考相关文档
7.表格行支持使用Model
在2.0中如果Grid表格使用的是model渲染数据,则可以在数据行相关回调中直接使用model的对象,如
$grid->clolumn('avatar')->display(function () {
// getAvatar是model中的自定义方法,这里可以直接调用
return $this->getAvatar();
});8.重构模型树行操作
在2.0中我们对模型树的行操作功能进行了重构,新的行操作功能和数据表格的行操作功能用法一致
use Dcat\Admin\Tree;
$tree->actions(function (Tree\Actions $actions) {
if ($actions->row->id > 5) {
$actions->disableDelete(); // 禁用删除按钮
}
// 添加新的action
$actions->append(...);
});
// 批量添加action
$tree->actions([
new Action1(),
"...",
...
]);9.增加settings配置表
在新版本中增加了settings配置表,目前主要用于保存扩展的启用和禁用配置数据,可以通过以下方式读写配置
// 读取
admin_settings('key1', '默认值');
admin_settings('arr.k1', '默认值');
// 保存配置
admin_settings([
'key1' => ['v1'],
'arr.k1' => 'v1',
]);10.数据仓库接口重命名
在2.0中我们对数据仓库的接口命名做了简化处理,新的interface如下
interface Repository{
/**
* 获取主键名称.
*
* @return string
*/
public function getKeyName();
/**
* 获取创建时间字段.
*
* @return string
*/
public function getCreatedAtColumn();
/**
* 获取更新时间字段.
*
* @return string
*/
public function getUpdatedAtColumn();
/**
* 是否使用软删除.
*
* @return bool
*/
public function isSoftDeletes();
/**
* 获取Grid表格数据.
*
* @param Grid\Model $model
*
* @return \Illuminate\Contracts\Pagination\LengthAwarePaginator|Collection|array
*/
public function get(Grid\Model $model);
/**
* 获取编辑页面数据.
*
* @param Form $form
*
* @return array|\Illuminate\Contracts\Support\Arrayable
*/
public function edit(Form $form);
/**
* 获取详情页面数据.
*
* @param Show $show
*
* @return array|\Illuminate\Contracts\Support\Arrayable
*/
public function detail(Show $show);
/**
* 新增记录.
*
* @param Form $form
*
* @return mixed
*/
public function store(Form $form);
/**
* 查询更新前的行数据.
*
* @param Form $form
*
* @return array|\Illuminate\Contracts\Support\Arrayable
*/
public function updating(Form $form);
/**
* 更新数据.
*
* @param Form $form
*
* @return bool
*/
public function update(Form $form);
/**
* 删除数据.
*
* @param Form $form
* @param array $deletingData
*
* @return mixed
*/
public function delete(Form $form, array $deletingData);
/**
* 查询删除前的行数据.
*
* @param Form $form
*
* @return array|\Illuminate\Contracts\Support\Arrayable
*/
public fun
ction deleting(Form $form);}更多变动
- 控制器命名空间更新为
Dcat\Admin\Http\Controllers - 废弃操作日志
- 废弃分步表单(已开发成扩展 dcat-admin/form-step)
- 语言包目录重命名(
zh-CN更新为zh_CN) - google字体本地化
- 异常处理功能重构
- 表单事件重构
- UI优化
- 静态资源目录由
vendors更改为vendor - …
我们在2.0中做了大量的细节改进,对许多功能接口都做了调整和代码优化,限于篇幅这里不再一一列出,详细说明会放在1.x升级指导文档中(文档即将在这几天内发布)。
关于应用市场和新主题
应用市场会在正式版发布时同步上线;
新主题会开发成插件,也会在正式版发布时同步上线~
# laravel
# php
# composer
# 命名空间
# Error
# 接口
# Interface
# JS
# 对象
# 事件
# 选择器
# column
# 表单事件
# http
# ui
# 重构
# 表单
# 进行了
# 的是
# 文档
# 会在
# 可以通过
# 使其
# 默认值
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
实例解析angularjs的filter过滤器
如何挑选最适合建站的高性能VPS主机?
如何快速查询域名建站关键信息?
Python面向对象测试方法_mock解析【教程】
Laravel怎么实现搜索功能_Laravel使用Eloquent实现模糊查询与多条件搜索【实例】
Laravel怎么写单元测试_PHPUnit在Laravel项目中的基础测试入门
Java解压缩zip - 解压缩多个文件或文件夹实例
如何在阿里云虚拟机上搭建网站?步骤解析与避坑指南
PHP正则匹配日期和时间(时间戳转换)的实例代码
再谈Python中的字符串与字符编码(推荐)
Laravel怎么使用Intervention Image库处理图片上传和缩放
微博html5版本怎么弄发语音微博_语音录制入口及时长限制操作【教程】
如何在服务器上配置二级域名建站?
Laravel如何使用Service Container和依赖注入?(代码示例)
Laravel怎么生成URL_Laravel路由命名与URL生成函数详解
大连 网站制作,大连天途有线官网?
北京网站制作的公司有哪些,北京白云观官方网站?
Laravel如何创建和注册中间件_Laravel中间件编写与应用流程
如何在 Pandas 中基于一列条件计算另一列的分组均值
网站制作价目表怎么做,珍爱网婚介费用多少?
Laravel如何实现全文搜索_Laravel Scout集成Algolia或Meilisearch教程
Laravel如何获取当前登录用户信息_Laravel Auth门面使用与Session用户读取【技巧】
Laravel如何使用缓存系统提升性能_Laravel缓存驱动和应用优化方案
INTERNET浏览器怎样恢复关闭标签页_INTERNET浏览器标签恢复快捷键与方法【指南】
零服务器AI建站解决方案:快速部署与云端平台低成本实践
宙斯浏览器视频悬浮窗怎么开启 边看视频边操作其他应用教程
网站制作报价单模板图片,小松挖机官方网站报价?
Linux系统命令中tree命令详解
LinuxCD持续部署教程_自动发布与回滚机制
Python自动化办公教程_ExcelWordPDF批量处理案例
制作无缝贴图网站有哪些,3dmax无缝贴图怎么调?
如何彻底卸载建站之星软件?
浅谈Javascript中的Label语句
HTML5段落标签p和br怎么选_文本排版常用标签对比【解答】
python中快速进行多个字符替换的方法小结
香港服务器建站指南:外贸独立站搭建与跨境电商配置流程
如何在IIS中新建站点并配置端口与物理路径?
详解jQuery中基本的动画方法
如何在腾讯云服务器快速搭建个人网站?
如何利用DOS批处理实现定时关机操作详解
油猴 教程,油猴搜脚本为什么会网页无法显示?
javascript基于原型链的继承及call和apply函数用法分析
公司门户网站制作流程,华为官网怎么做?
如何快速生成橙子建站落地页链接?
Laravel怎么实现观察者模式Observer_Laravel模型事件监听与解耦开发【指南】
Laravel如何获取当前用户信息_Laravel Auth门面获取用户ID
东莞专业网站制作公司有哪些,东莞招聘网站哪个好?
如何快速打造个性化非模板自助建站?
什么是JavaScript解构赋值_解构赋值有哪些实用技巧
如何在IIS中新建站点并解决端口绑定冲突?


ction deleting(Form $form);}