以下由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
<style> .popover{z-index:29891015} </style> <div class="{{$viewClass['form-group']}}"> <div for="{{ $id }}" class="{{$viewClass['label']}} control-label"> <span>{!! $label !!}</span> </div> <div class="{{$viewClass['field']}}"> @include('admin::form.error') <div class="input-group"> <span class="input-group-prepend"><span class="input-group-text bg-white" style="padding: 4px"><i style="width: 24px;height: 100%;background: {!! $value !!}"></i></span></span> <input {!! $attributes !!} /> @if ($append) <span class="input-group-append">{!! $append !!}</span> @endif </div> @include('admin::form.help-block') </div> </div> <script require="@color"> $('{{ $selector }}').colorpicker({!! json_encode($options) !!}).on('colorpickerChange', function(event) { $(this).parents('.input-group').find('.input-group-prepend i').css('background-color', event.color.toString()); }); </script>
3f1c4e4b6b16bbbd69b2ee476dc4f83a 和
c9ccee2e6ea535a969eb3f532ad9fe89 標籤中的程式碼,將會被提取編譯,並實作
Admin::script()和
Admin::style() 同樣的處理效果,要注意的是
3f1c4e4b6b16bbbd69b2ee476dc4f83a 和
c9ccee2e6ea535a969eb3f532ad9fe89必須是根標籤,不能被包裹在其他標籤中,否則會提取失敗! 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(), "<div>...</div>", ... ]);
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 function deleting(Form $form);}
更多变动
Dcat\Admin\Http\Controllers
zh-CN
更新为zh_CN
)vendors
更改为vendor
我们在2.0
中做了大量的细节改进,对许多功能接口都做了调整和代码优化,限于篇幅这里不再一一列出,详细说明会放在1.x升级指导文档中(文档即将在这几天内发布)。
关于应用市场和新主题
应用市场会在正式版发布时同步上线;
新主题会开发成插件,也会在正式版发布时同步上线~
以上是全新擴充系統上線了!發布Dcat Admin v2.0.0-BETA 版本~的詳細內容。更多資訊請關注PHP中文網其他相關文章!