本次版本主要更新了全新菜單樣式、全組件異步渲染功能以及諸多其他功能的優化。
1.組件異步加載
這個版本對異步加載功能進行了優化,使其支持了靜態資源按需加載的特性。 目前內置的所有組件都支持使用異步渲染功能,並且支持在頁面的任意位置上使用,具體用法請參考文檔 異步加載。
效果
2.全新菜單樣式以及布局
本次版本增加了新的菜單樣式,在配置文件config/admin.php
中加上配置參數admin.layout.sidebar_style
,默認值為light
'layout' => [ // 支持 light、primary、dark 'sidebar_style' => 'light', ... ], ...
效果如下
3.權限配置功能優化
配置權限路徑時支持填寫路由別名,如 admin.users.show
1.行內編輯增加保存成功後刷新頁面參數
// 第二個參數設置為 true,保存成功後刷新頁面$grid->column($field)->switch(null, true);$grid->column($field)->select([...], true);$grid->column($field)->checkbox([...], true);$grid->column($field)->radio([...], true);// 第三個參數設置為 true,保存成功後刷新頁面$grid->column($field)->switchGroup([...], null, true);
2.表格搜索相關功能支持關聯關係欄位查詢
所有涉及搜索的功能,包括:過濾器(Filter)、快捷搜索、規格篩選器、列過濾器等,全部支持關聯關係欄位查詢。 並且如果項目中安裝了dcat/laravel-wherehasin,則會優先使用whereHasIn
方法進行搜索。
// 快捷搜索$grid->quickSerach(['user.name']);// 過濾器$grid->filter(function ($filter) { $filter->like('user.name');});// 列過濾器$grid->column($field)->filter( Grid\Column\Filter\Equal::make()->setColumnName('user.name'););// 規格篩選器$grid->selector(function ($selector) { $selector->select('user.id', [...]);});
3.過濾器表單增加表格選擇器 (selectTable)
具體使用請參考文檔過濾器 - 表格選擇器
此功能可用於替代彈窗選擇器,彈窗選擇器即將在 2.0
中廢棄
use App\Admin\Renderable\UserTable;use Dcat\Admin\Models\Administrator;$filter->equal('user_id') ->selectTable(UserTable::make(['id' => ...])) // 設置渲染類實例,並傳遞自定義參數 ->title('彈窗標題') ->dialogWidth('50%') // 彈窗寬度,默認 800px ->model(Administrator::class, 'id', 'name'); // 設置編輯數據顯示
3.過濾器增加忽略篩選項功能 (ignore)
此功能由@llz貢獻
$filter->equal('column')->ignore();
4.規格篩選器選中後跳轉到第一頁
優化規格篩選器功能,篩選以及取消篩選後跳轉到第一頁
1.增加顏色選擇器 (color)
$form->color('field');
2.增加表格選擇器 (selectTable)
具體使用請參考文檔表格選擇器
此功能可用於替代彈窗選擇器,彈窗選擇器即將在 2.0
中廢棄
use App\Admin\Renderable\UserTable;use Dcat\Admin\Models\Administrator;$form->selectTable($field) ->title('彈窗標題') ->dialogWidth('50%') // 彈窗寬度,默認 800px ->from(UserTable::make(['id' => $form->getKey()])) // 設置渲染類實例,並傳遞自定義參數 ->model(Administrator::class, 'id', 'name'); // 設置編輯數據顯示
效果
3.增加json表單 (array)
如果某一個欄位存儲的是json
格式的二維數組,並且欄位比較多,可以使用array
表單組件來實現快速的編輯:
$form->array('column_name', function ($table) { $table->text('key'); $table->text('value'); $table->textarea('desc');})->saveAsJson();
4.增加Checkbox::canCheckAll 方法
啟用選中全部功能
$form->checkbox($field)->options([...])->canCheckAll();;
5.增加百度地圖組件並優化地圖配置參數
在這個版本中配置文件增加了admin.map
參數,用於配置地圖表單key,用法如下
'map' => [ 'provider' => 'baidu', 'keys' => [ 'tencent' => env('TENCENT_MAP_API_KEY'), 'google' => env('GOOGLE_API_KEY'), 'baidu' => env('BAIDU_MAP_API_KEY'), ], ],
6.增加 saveAsString、saveAsJson 方法
saveAsString
方法可以把表單值轉化為string
類型保存,當保存的資料庫欄位值不允許為null
時非常有用; saveAsJson
可以把表單值保存為json
格式。
$form->text('nickname')->saveAsString();$form->multipleSelect('user')->saveAsJson();
7.增加forgetIgnored方法
撤銷忽略欄位
$form->ignore(['user']);$form->submitted(function (Form $form) { $form->forgetIgnored(['user']);});
7.優化currency、number等諸多表單寬度顯示
優化表單欄位的默認寬度顯示
8.優化currency表單保存時忽略逗號
優化currency表單保存時忽略逗號
9.移除表單提交自動過濾disable、readonly欄位功能
從這個版本開始,不再自動過濾disable
和readonly
表單
1.數據詳情欄位增加html方法
通過html
方法可以在詳情頁插入一段不顯示label
的HTML
代碼,此功能由@Lila貢獻
// 傳入字符串$show->html('<br/>');// 傳入視圖$show->html(view(...));// 傳入閉包$show->html(function () { // 獲取欄位信息 $id = $this->id; $username = $this->username; return view(..., ['id' => $id]);});
2.移除 montserrat 字體
dot
、prepend
方法不支持json
以及關聯關係欄位問題#383list
表單無法支持xxx.xxx
格式問題#452!=
判斷異常問題#457
簡介
Dcat Admin是一個基於laravel-admin二次開發而成的後臺系統構建工具,只需很少的代碼即可快速構建出一個功能完善的高顏值後臺系統。內置豐富的後臺常用組件,開箱即用,讓開發者告別冗雜的HTML代碼,對後端開發者非常友好。
在線演示站點 | 官方文檔 | Gitee主頁 | Github主頁