Laravel-admin 发布 1.7.3 版本

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

详细文档请参考 自定义行&批量操作

本帖由系统于 2个月前 自动加精
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
讨论数量: 32

:+1: :+1: :+1:

2个月前 评论

前排吃瓜

2个月前 评论
never615

:thumbsup: :thumbsup: :thumbsup:

2个月前 评论
superwen

赞赞赞。

2个月前 评论
Toiu

非常棒~~ 感谢作者的辛勤付出

2个月前 评论

固定表格列 这个功能好,作者辛苦啦

2个月前 评论

:+1: :+1: :+1: :+1:

2个月前 评论

https://github.com/z-song/laravel-admin/is... 这个问题解决了吗。。。

2个月前 评论
生活无限好 (作者) 2个月前
kylesean 2周前
Zippo 1周前
kylesean 1周前

希望 laravel-admin 越来越好!!!那就得靠你们了!!!

2个月前 评论

支持支持!!!
一直都在用

2个月前 评论

file
Laravel-admin 模型表格【grid】的行内编辑是怎么实现的?第一次使用,为什么一直是 loading

2个月前 评论
showcj 2个月前
悟佛悟空 (作者) 1个月前

新功能厉害了。

2个月前 评论

top_alert这个怎么用,开启了为什么只在页面顶部显示了个1

2个月前 评论

昨天第一次尝试 laravel-admin, 如丝般顺滑, 作者棒棒哒 :+1: @song

1个月前 评论
gotophp

@song 新版 还能隐藏 编辑 删除 查看这三个按钮么

1个月前 评论
hmonline 1个月前

固定列 好评.终于不怕超出边界了! :relaxed:

1个月前 评论
running8

越来越完善了,我们都是收益者。再次感谢邹同学!

1个月前 评论
晓鹤

感谢~

1个月前 评论

1.7.2怎么检测不到有新版本更新呢?

1个月前 评论

selectedRows is not defined 1.7.2版本批量操作报错

1个月前 评论
hmonline 1个月前
Ciroy

能否固定行头呢?

1个月前 评论

升级到1.7.5了都,为什么操作那里 不是折叠起来的?

1个月前 评论
h-o-o 1个月前
橙子 1个月前
张雷

很不错的后台框架

1个月前 评论
Luff

@song

  1. 添加一些新角色
  2. 给角色分配默认的所有权限
  3. 添加一个用户
  4. 给用户分配这个角色
  5. 用这个用户登录后台,菜单不出来
'menu_bind_permission' => true,

'check_route_permission' => true,

'check_menu_roles' => true,
1个月前 评论
running8

一直觉得这个扩展很好用。今天重新看了一下升级后的文档,增加很好多实用的性能。使用更简便了,一个晚上搭建一个项目的管理后台。祝Laravel-admin发扬光大,一统江湖。

1个月前 评论

不知什么时候我们也可以看文档实现功能。。。。。。
目前,求应用在项目中的教程。

2周前 评论
likunyan

song 哥 :+1:

2周前 评论
czy2020

@song

使用这个自定义行操作 ,一直报这个错,是我哪里操作有问题吗?

Type error: Argument 1 passed to App\Admin\Actions\Product\Enter::handle() must be an instance of App\Models\Product, instance of Illuminate\Http\Request given, called in F:\Obj\chanpinOS\vendor\encore\laravel-admin\src\Controllers\HandleController.php on line 90

下面是使用代码

namespace App\Admin\Actions\Product;

use App\Models\Product;
use Encore\Admin\Actions\RowAction;
use Illuminate\Http\Request;

class Enter extends RowAction
{
    public $name = '产品入库';

    public function handle(Product $product,Request $request)
    {
        // 获取到表单中的`stock`值
        // $stock = $request->get('stock');
        //任何业务逻辑都还没开始做
        return $this->response()->success('入库操作成功!')->refresh();
    }

    public function form()
    {
        $this->text('stock', '入库数量')->rules('required|regex:/^\d+$/', [
            'required' => '入库数量不能为空',
            'regex' => '入库数量必须填写数字',
        ]);
    }

}

//下面这段代码是在grid 的代码
$grid->actions(function ($actions) {
      //入库
      $actions->add(new Enter());
 });
2周前 评论

请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!