在過去的這段時間裡,laravel-admin釋出了v1.5.16
、v1.5.19
、v1.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
版本中增強了命令列工具,增加了三個命令admin
、admin
、admin:create-user
、admin:reset-password
, 並且增強了admin:make
命令,它將會根據模型對應的表的欄位來生成列表頁、詳情頁、表單頁相應的程式碼,
詳情參考命令列工具
擴充套件開發
其實laravel-admin
在很早的版本里面就已經支援三方擴充套件了,只不過一直沒有時間來對這一塊進行完善和推動,所以這一塊的功能一直停滯不前.
在v1.6.0
版本中最大的更新就是對laravel-admin
的第三方擴充套件做了增強,在這個版本中增加了一個admin:extend
命令用來生成laravel-admin
擴充套件骨架,根據文件可以快速的開發出一個通用的laravel-admin
擴充套件, 詳細可參考擴充套件開發.
目前已經可用的擴充套件有下面一些:
Extension | Description | laravel-admin |
---|---|---|
helpers | 開發幫助工具 | ~1.5 |
media-manager | 本地檔案管理器 | ~1.5 |
api-tester | Laravel api測試工具 | ~1.5 |
scheduling | 定時任務管理 | ~1.5 |
redis-manager | 一個Redis 管理器 | ~1.5 |
backup | 備份管理 | ~1.5 |
log-viewer | Laravel日誌檢視 | ~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 |
phpinfo | 將phpinfo 頁面整合進laravel-admin 中 |
~1.6 |
在Laravel nova
釋出的不到一個月的時間裡,就已經有了上百個擴充套件了,在這方面laravel-admin
的生態落後很多, 我希望如果大家在使用laravel-admin
的過程中,有實現一些擴充套件功能,不妨按照上面的文件包裝成一個laravel-admin
擴充套件,共享給更多人使用, 另外大家如果有好的idea,也不妨分享出來,其它有時間有精力的同學或許可以和你一起實現它,laravel-admin
需要更多人的參與才能形成更好的生態系統。
不久的將來,laravel-admin
將會嘗試參考fastadmin的方式,將部分擴充套件元件商業化, 同樣歡迎大家參與!
本作品採用《CC 協議》,轉載必須註明作者和本文連結