Laravel-admin 釋出 1.7.3 版本

song發表於2019-07-22

v1.7.3 版本釋出了,在這個版本中,主要有下面的修改和變更:

配置

  • 增加check_route_permission配置,來控制是否檢查路由許可權。
  • 增加check_menu_roles配置,用來控制是否檢查選單項的可見角色。
  • 增加top_alert配置,用來在所有頁面的頂部設定一個提醒欄。
  • 增加grid_action_class配置,用來指定表格的操作列顯示類。

模型表格

  • 增加$grid->fixColumns($head, $tail)方法,實現表格列的固定顯示。
  • 增加$grid->quickCreate()方法,實現在表格頁面快速建立資料,文件
  • 重構了表格的資料操作,可以更優雅的定義行操作和批量操作,文件

下面簡單介紹一下新增的幾個比較常用的Feature

固定列

如果表格的欄位比較多,擠壓了列的顯示,可以用過fixColumns方法來設定固定表格的頭部和尾部的列,中間部分的列使用滾動條展示

$grid->fixColumns(4, -3);

第一個參數列示固定從頭開始的前4列,第2個參數列示固定從後往前數的3列,(第二個引數可不傳,預設為-1)

效果如下:

Kapture 2019-07-22 at 15 15 16

快捷建立

在表格中開啟這個功能之後,會在表格頭部增加一個form表單來建立資料,對於一些簡單的表格頁面,可以方便快速的建立資料,不用跳轉到建立頁面操作

WX20190722-004700@2x

開啟方式:

$grid->quickCreate(function (Grid\Tools\QuickCreate $create) {
    $create->text('name', '名稱');
    $create->email('email', '郵箱');
});

詳細文件請參考 快捷建立

自定義表格的行&批量操作

這個版本重構了資料表格的行操作和批量操作,可以使用更優雅的方式來自定義表格的行操作和批量操作。

比如定義下面這個實現了行復制的操作類:

<?php

namespace App\Admin\Actions\Post;

use Encore\Admin\Actions\RowAction;
use Illuminate\Database\Eloquent\Model;

class Replicate extends RowAction
{
    public $name = '複製';

    public function handle(Model $model)
    {
        $model->replicate()->save();

        return $this->response()->success('複製成功.')->refresh();
    }

    public function dialog()
    {
        $this->confirm('確定複製?');
    }
}

在操作列點選複製之後,資料會提交到類中的handle方法中,處理之後返回成功資訊並且重新整理頁面,不必像之前一樣需要手寫JS、定義路由和控制器action等等這些流程來實現了。

另外也支援彈出form表單來輸入使用者資料實現資料操作:

<?php

namespace App\Admin\Actions\Post;

use Encore\Admin\Actions\RowAction;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Http\Request;

class Report extends RowAction
{
    public $name = '舉報';

    public function handle(Model $model, Request $request)
    {
        // $model ...

        return $this->response()->success('Success message.')->refresh();
    }

    public function form()
    {
        $type = [
            1 => '廣告',
            2 => '違法',
        ];
        $this->checkbox('type', '型別')->options($type);
        $this->textarea('reason', '原因');
    }
}

上面的行操作,觸發之後會彈出表單,填入資料之後會和當前行資料模型一起提交到handle方法中處理。

WX20190722-124903

詳細文件請參考 自定義行&批量操作

相關文章