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

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

本作品采用《CC 协议》,转载必须注明作者和本文链接
本帖由系统于 4年前 自动加精
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 53

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

4年前 评论
h-o-o 4年前
橙子 4年前
Luff

@song

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

'check_route_permission' => true,

'check_menu_roles' => true,
4年前 评论

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

4年前 评论
22 (作者) 4年前
kylesean 4年前
假如_丶 4年前
kylesean 4年前

数据表单中成功后的提示,好像不起作用

        admin_toastr(' 提示消息 ', 'error');// 不起作用

        return back();
4年前 评论

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

4年前 评论
hmonline 4年前
Ciroy

能否固定行头呢?

4年前 评论
张雷

很不错的后台框架

4年前 评论
running8

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

4年前 评论

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

4年前 评论

song 哥 :+1:

4年前 评论
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());
 });
4年前 评论

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

4年前 评论

首先感谢作者的辛勤劳动!就是后续在自定义列操作中的表单,能不能像form表单里一样支持display,支持调整行的长度!
比如:

file
或者支持form方法里能传值进去,例如传值,加载select的options选项!

后续更新,已经解决form方法的传值问题,比如要获取这一行的id,可以这样:

public function form(Model $model)
    {
        $uid = $model->id;
    }

这样是可以获取到id的,和handel方法获取一致!

4年前 评论
acvc225 2年前
ALMAS

模型详情中能不能用选项卡的形式展示内容?

4年前 评论

https://laravel-admin.org/docs/zh 文档中能不能增加搜索功能, 有时候不大好找到对应的文档, 要一个个点进去看

4年前 评论

最近的版本升级都懒得写changes了 :joy:

4年前 评论
running8

已经 1.7.14 ,文档再更新一下啊。

4年前 评论

fixColumns固定列功能 被折叠区域 第一行被遮挡住了 有遇到过吗?

file

3年前 评论

很好,收藏了,感谢!

3年前 评论

grid 快速创建 点击提交后没有刷新页面或者提示成功等反应 有人遇到过吗
但是手动刷新页面之后会有成功提示 数据也已经创建了

3年前 评论

1.8的版本自定义操作弹出表单,$grid->actions 没有add的方法了,改怎么处理?

2年前 评论

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

4年前 评论
showcj 4年前
悟佛悟空 (作者) 4年前

前排吃瓜

4年前 评论
never615

:thumbsup: :thumbsup: :thumbsup:

4年前 评论
superwen

赞赞赞。

4年前 评论
Toiu

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

4年前 评论

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

4年前 评论

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

4年前 评论

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

4年前 评论

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

4年前 评论

新功能厉害了。

4年前 评论

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

4年前 评论

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

4年前 评论

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

4年前 评论
hmonline 4年前

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

4年前 评论
running8

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

4年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!