下面由laravel教程欄目給大家介紹dcat admin v2.0.0-beta 版本發(fā)布,希望對(duì)需要的朋友有所幫助!
Dcat Admin?是一個(gè)基于laravel-admin二次開發(fā)而成的后臺(tái)構(gòu)建工具,只需很少的代碼即可構(gòu)建出一個(gè)功能完善的高顏值后臺(tái)系統(tǒng)。
前言
Hi,各位同學(xué)大家好!時(shí)隔多日,Dcat Admin終于迎來了2.0的第一個(gè)版本,下面簡(jiǎn)單介紹一下主要變化,歡迎大家安裝體驗(yàn),如果有問題會(huì)即時(shí)修復(fù)~
安裝
已發(fā)布 v2.0.1-beta 版本
有什么變化?
1.擴(kuò)展
我們?cè)谶@個(gè)版本中重點(diǎn)優(yōu)化了 擴(kuò)展 功能,主要簡(jiǎn)化了擴(kuò)展的使用流程,讓用戶可以通過頁面安裝、卸載、升級(jí)擴(kuò)展,并且同時(shí)支持了頁面壓縮包和composer兩種安裝方式。正式版發(fā)布時(shí)會(huì)上線應(yīng)用市場(chǎng)功能,敬請(qǐng)期待~
詳細(xì)使用文檔即將在本周內(nèi)逐步更新~
2.增強(qiáng)表單布局能力
在2.0中,我們對(duì)數(shù)據(jù)表單的block布局功能進(jìn)行了重構(gòu),使其支持更復(fù)雜的布局,示例
$form->block(8,?function?(FormBlockForm?$form)?{ ????$form->title('基本設(shè)置'); ????$form->showFooter(); ????$form->width(9,?2); ????$form->column(6,?function?(FormBlockForm?$form)?{ ????????$form->display('id'); ????????$form->text('name'); ????????$form->email('email'); ????????$form->image('avatar'); ????????$form->password('password'); ????}); ????$form->column(6,?function?(FormBlockForm?$form)?{ ????????$form->text('username'); ????????$form->email('mobile'); ????????$form->textarea('description'); ????}); }); $form->block(4,?function?(FormBlockForm?$form)?{ ????$form->title('分塊2'); ????$form->text('nickname'); ????$form->number('age'); ????$form->radio('status')->options(['1'?=>?'默認(rèn)',?2?=>?'凍結(jié)'])->default(1); ????$form->next(function?(FormBlockForm?$form)?{ ????????$form->title('分塊3'); ????????$form->date('birthday'); ????????$form->date('created_at'); ????}); });
2.0也支持在tab布局中嵌套使用column和rows布局,如
這個(gè)功能同時(shí)支持?jǐn)?shù)據(jù)表單和工具表單
$form->tab('標(biāo)題', function (Form $form) { $form->column(6, function (Form $form) { ... }); $form->column(6, function (Form $form) { ... });});
3.重構(gòu)表單響應(yīng)方法
在1.0版本中表單的響應(yīng)方法只有success、Error和redirect,無法滿足一些比較復(fù)雜的場(chǎng)景,在2.0中我們讓表單的響應(yīng)方法和action的響應(yīng)方法統(tǒng)一了起來,使其支持更多功能,并減少開發(fā)者的學(xué)習(xí)成本。
在數(shù)據(jù)表單中
$form->saving(function (Form $form) { return $form ->response() ->success('保存成功') ->script('console.log("執(zhí)行JS代碼")') ->redirect('auth/users');});
在工具表單中
public function handle(array $input){ ... return $this ->response() ->alert() ->success('成功') ->detail('詳細(xì)內(nèi)容');}
4.JS 代碼和 php 代碼分離
這個(gè)功能是對(duì)laravel-admin2.0版本新特性的跟進(jìn),在2.0中更推薦把JS代碼放到視圖文件中,示例
<style> .popover{z-index:29891015} </style><div> ????<div> ????????<span>{!!?$label?!!}</span> ????</div> ????<div> ????????@include('admin::form.error') ????????<div> ????????????<span><span><i></i></span></span> ????????????<input> ????????????@if?($append) ????????????????<span>{!!?$append?!!}</span> ????????????@endif ????????</div> ????????@include('admin::form.help-block') ????</div> </div> <script> $('{{ $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>
<script> 和 <style> 標(biāo)簽中的代碼,將會(huì)被提取編譯,并實(shí)現(xiàn) Admin::script() 和 Admin::style() 同樣的處理效果,需要注意的是<script> 和 <style>必須是根標(biāo)簽,不能被包裹在其他標(biāo)簽中,否則會(huì)提取失敗!</script>
5.重構(gòu)表格列選擇器功能
在1.x中的列選擇器中有一些兼容性問題,不能兼容一些特殊類型的表格,所以2.0中我們對(duì)列選擇器功能進(jìn)行了重構(gòu),并廢棄了舊的api(responsive)。
新的列選擇器功能可以完美兼容固定列和組合表頭功能,并且支持記住用戶操作功能,會(huì)自動(dòng)記住用戶的選擇,效果如下
6.重構(gòu)表格事件
在1.0表格的事件設(shè)計(jì)得比較隨意、不規(guī)范,所以我們?cè)?.0中對(duì)表格事件進(jìn)行了重構(gòu),并增加了一些事件,新的表格事件用法如下
use?DcatAdminGrid; Grid::make(new?Model(),?function?(Grid?$grid)?{ ????$grid->listen(GridEventsFetching::class,?function?(Grid?$grid)?{ ????????... ????}); });
如果你想監(jiān)聽所有的Grid
use?DcatAdminGrid; use?IlluminateSupportFacadesEvent; Event::listen(GridEventsFetching::class,?function?(Grid?$grid)?{ ????... }); //?或者 Grid::resolving(function?(Grid?$grid)?{ ????$grid->listen(GridEventsFetching::class,?function?(Grid?$grid)?{ ????????... ????}); });
關(guān)于事件的更多用法,請(qǐng)參考相關(guān)文檔
7.表格行支持使用Model
在2.0中如果Grid表格使用的是model渲染數(shù)據(jù),則可以在數(shù)據(jù)行相關(guān)回調(diào)中直接使用model的對(duì)象,如
$grid->clolumn('avatar')->display(function?()?{ ????//?getAvatar是model中的自定義方法,這里可以直接調(diào)用 ????return?$this->getAvatar(); });
8.重構(gòu)模型樹行操作
在2.0中我們對(duì)模型樹的行操作功能進(jìn)行了重構(gòu),新的行操作功能和數(shù)據(jù)表格的行操作功能用法一致
use?DcatAdminTree; $tree->actions(function?(TreeActions?$actions)?{ ????if?($actions->row->id?>?5)?{ ????????$actions->disableDelete();?//?禁用刪除按鈕 ????} ????//?添加新的action ????$actions->append(...); }); //?批量添加action $tree->actions([ ????new?Action1(), ????"<div>...</div>", ????... ]);
9.增加settings配置表
在新版本中增加了settings配置表,目前主要用于保存擴(kuò)展的啟用和禁用配置數(shù)據(jù),可以通過以下方式讀寫配置
//?讀取 admin_settings('key1',?'默認(rèn)值'); admin_settings('arr.k1',?'默認(rèn)值'); //?保存配置 admin_settings([ ????'key1'?=>?['v1'], ????'arr.k1'?=>?'v1', ]);
10.數(shù)據(jù)倉庫接口重命名
在2.0中我們對(duì)數(shù)據(jù)倉庫的接口命名做了簡(jiǎn)化處理,新的Interface如下
interface Repository{ /** * 獲取主鍵名稱. * * @return string */ public function getKeyName(); /** * 獲取創(chuàng)建時(shí)間字段. * * @return string */ public function getCreatedAtColumn(); /** * 獲取更新時(shí)間字段. * * @return string */ public function getUpdatedAtColumn(); /** * 是否使用軟刪除. * * @return bool */ public function isSoftDeletes(); /** * 獲取Grid表格數(shù)據(jù). * * @param GridModel $model * * @return IlluminateContractsPaginationLengthAwarePaginator|Collection|array */ public function get(GridModel $model); /** * 獲取編輯頁面數(shù)據(jù). * * @param Form $form * * @return array|IlluminateContractsSupportArrayable */ public function edit(Form $form); /** * 獲取詳情頁面數(shù)據(jù). * * @param Show $show * * @return array|IlluminateContractsSupportArrayable */ public function detail(Show $show); /** * 新增記錄. * * @param Form $form * * @return mixed */ public function store(Form $form); /** * 查詢更新前的行數(shù)據(jù). * * @param Form $form * * @return array|IlluminateContractsSupportArrayable */ public function updating(Form $form); /** * 更新數(shù)據(jù). * * @param Form $form * * @return bool */ public function update(Form $form); /** * 刪除數(shù)據(jù). * * @param Form $form * @param array $deletingData * * @return mixed */ public function delete(Form $form, array $deletingData); /** * 查詢刪除前的行數(shù)據(jù). * * @param Form $form * * @return array|IlluminateContractsSupportArrayable */ public function deleting(Form $form);}
更多變動(dòng)
- 控制器命名空間更新為DcatAdminhttpControllers
- 廢棄操作日志
- 廢棄分步表單(已開發(fā)成擴(kuò)展 dcat-admin/form-step)
- 語言包目錄重命名(zh-CN更新為zh_CN)
- google字體本地化
- 異常處理功能重構(gòu)
- 表單事件重構(gòu)
- UI優(yōu)化
- 靜態(tài)資源目錄由vendors更改為vendor
- …
我們?cè)?.0中做了大量的細(xì)節(jié)改進(jìn),對(duì)許多功能接口都做了調(diào)整和代碼優(yōu)化,限于篇幅這里不再一一列出,詳細(xì)說明會(huì)放在1.x升級(jí)指導(dǎo)文檔中(文檔即將在這幾天內(nèi)發(fā)布)。
關(guān)于應(yīng)用市場(chǎng)和新主題
應(yīng)用市場(chǎng)會(huì)在正式版發(fā)布時(shí)同步上線;
新主題會(huì)開發(fā)成插件,也會(huì)在正式版發(fā)布時(shí)同步上線~? ? ? ? ? ?? ? ? ? ? ? ? ? ? ? ? ? ? ? ?