Laravel-admin釋出2.0BETA版本,歡迎使用和反饋

song發表於2020-09-07

大家好,最近花了不少時間在laravel-admin的2.0版本的開發工作上面,目前開發工作基本完成,今天釋出BETA版本,有興趣的同學們可以嘗試安裝使用,如有遇到問題,可透過Github issue反饋。

安裝:

composer require encore/laravel-admin:v2.0.0-beta1 -vvv

接下來的步驟參考文件完成安裝。

主要調整和更新

下面是2.0beta版本的主要調整更新。

前端框架升級為AdminLTE3

AdminLTE3的整體樣式,可以訪問adminlte.io預覽,其它前端依賴庫也都基本升級到了最新的版本,比如Bootstrap升級為4.x版本。
這次升級最多的時間也是花費在這部分的開發工作上面,幾乎所有的檢視檔案都需要調整,大部分的JS庫呼叫同樣需要調整,如果大家在使用過程中遇到相關的問題,歡迎反饋。

JS程式碼和PHP程式碼分離

在1.x版本中,使用大量的Admin::script()Admin::style()方法, 將JS和CSS程式碼嵌入頁面中,實現一些前端互動效果,不僅影響開發效率,而且增加了後期的維護成本, 在新的版本中,參考了vuejs的思想,透過實現新的檢視渲染機制實現JS程式碼和PHP的分離,比如之前在PHP程式碼中使用Admin::script()來實現表單元件初始化的方法,使用下面程式碼就可以實現了:

以表單slider元件的檢視檔案舉例:

<input type="text" class="form-control {{$class}}" name="{{$name}}"  {!! $attributes !!} />

<script require="rangeSlider" @script>
    $(this).ionRangeSlider(@json($options));
</script>

<style>
   input {
       width: 200px;
   }
</style>

<script><style>標籤中的程式碼,將會被提取編譯,並實現Admin::script()Admin::style()同樣的處理效果。

另外在1.x版本中,表單HasMany元件對於一些表單項型別不能友好支援的BUG, 在新的檢視渲染機制下也得到了很好的解決。

關於這部分的詳細使用方法,請參考檢視渲染;

Grid重新命名為Table

在2.0的版本中使用table命令資料表格,在控制器中的表格構建程式碼將調整為:

<?php

use App\Models\Post;
use Encore\Admin\Table;

class PostController extends AdminController 
{
    public function table()
    {
        $table = new Table(new Post());

        $table->column('id', 'ID');
        $table->column('title', '標題');

        return $table;
    }
}

其它資料表格的使用方法基本保持不變。

靜態資源按需載入

在1.x版本中,所有的資源會一次性載入,如果引入了太多的前端庫,會嚴重影響頁面載入速度,在2.0版本中解決了這個問題,可以在任何地方使用Admin::js()Admin::css()方法,並且只有在進入頁面是才會非同步載入所需的資源,這樣的話你的後臺應用使用了再多的前端庫,都不會有頁面載入壓力。

Form表單ajax非同步提交

模型表單和資料表單的提交都調整為ajax非同步提交,這個調整,解決了之前版本中,提交錯誤跳轉回來是丟失表單資料的問題。

支援彈出模態框新建或編輯資料

這個功能是基於前兩點的最佳化而實現的,也是很久以來,大家都希望實現的feature,只要使用下面的程式碼就可以簡單開啟:

$table->modalForm();

這樣,在點選新建按鈕和行編輯的時候,將會彈出模態框表單來進行資料的編輯,不再需要跳轉的新的頁面來編輯資料。

重構了表格的行內編輯功能

1.x版本中的表格行內編輯功能依賴X-editable庫來實現,由於X-editable支援的編輯形式有限,所以在2.0版本中移除了X-editable,內建開發實現了基本的行內編輯功能,並且保持了和表單元件一致的方法命名,更加方便使用,具體使用參考文件行內編輯

移除了操作日誌和RBAC模組

考慮到不是每個應用都需要這兩個功能,所以在2.0版本中移除了這兩個模組,後續會考慮將這兩個模組封裝成擴充套件的形式提供幫助,當然大家也可以按照自己的需求自行開發。

支援雙擊表格行來觸發資料操作

2.0版本將支援透過雙擊表格行來觸發資料操作, 下面是具體的使用方法

// 雙擊行跳轉編輯頁(或者模態框編輯)
$table->dblclick('edit');

// 雙擊跳轉詳情頁
$table->dblclick('view');

// 雙擊觸發刪除操作
$table->dblclick('delete');

// 雙擊選中當前行
$table->dblclick('select');

注意事項

這次釋出的是2.0-BETA公測版本,肯定有很多BUG存在,所以請儘量不要在生產環境使用,待BUG基本修復、功能穩定之後再發布2.0正式版本,有興趣的同學可以自行安裝體驗,歡迎提供反饋意見以及feature request.

另外由於2.0版本涉及了大量底層結構的修改,將不支援從1.x版本直接升級,相關的擴充套件也需要後續更新相容後才能使用.

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章