Laravel-admin 釋出 1.6.0 版本,以及近期的一些更新

song發表於2018-09-09

在過去的這段時間裡,laravel-admin釋出了v1.5.16v1.5.19v1.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();
});

用上面的程式碼即可實現下圖的效果
wx20180909-211708
有時候你可能想要定義一些常用的查詢範圍,能方便快速的查詢到這個常用的範圍,可以通過新增的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();

上面的程式碼將會在篩選按鈕的右邊生成一個下來選單,點選選單即可執行相應的查詢,效果參考下面
wx20180909-212031

有些場景下,對同一個欄位有多種查詢方式,對分數字段score><=查詢, 通過新增的group方法實現

$filter->group('score', function ($group) {
    $group->equal('等於');
    $group->gt('大於');
    $group->lt('小於');
});

實現類似下圖的效果
wx20180909-212049

增強命令列工具

v1.5.19版本中增強了命令列工具,增加了三個命令adminadminadmin:create-useradmin: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的方式,將部分擴充套件元件商業化, 同樣歡迎大家參與!

相關文章