laravel-admin 实现给grid的列添加行数序号的方法

一、前言

在网页开发中,列表页面是非常常见的一种页面,通常我们会为数据表格配置一些列显示的属性,例如:显示列宽、排序、过滤等。在数据表格中通常需要有行号,给用户提供更方便的数据查阅,laravel-admin 的 grid 组件默认并没有提供行号的显示,那么如何为表格添加行号呢?本文将介绍 laravel-admin 给 grid 添加行号的实现方法。

二、前提条件

在开始介绍如何给 grid 添加行号前,我们需要满足以下两个前提条件:

- 已经安装使用了 laravel-admin 的框架

- 已经在 laravel-admin 中成功生成了列表页面并显示相关数据

三、添加行号

步骤一:在 laravel-admin 中找到 grid 相关的配置文件,通常位于 `app/Admin/Controllers` 文件夹下对应的控制器文件中,例如:

```php

namespace App\Admin\Controllers;

use App\Models\User;

use Encore\Admin\Controllers\AdminController;

use Encore\Admin\Form;

use Encore\Admin\Grid;

use Encore\Admin\Show;

class UserController extends AdminController

{

/**

* Title for current resource.

*

* @var string

*/

protected $title = 'User';

/**

* Make a grid builder.

*

* @return Grid

*/

protected function grid()

{

$grid = new Grid(new User());

return $grid;

}

}

```

步骤二:在 `protected function grid()` 方法中配置需要添加行号的列,例如:

```php

protected function grid()

{

$grid = new Grid(new User());

$grid->model()->orderBy('id', 'desc');

$grid->column('id', 'ID')->sortable();

$grid->column('name', '用户名')->sortable();

$grid->column('email', 'Email')->sortable();

$grid->column('created_at', '创建时间')->sortable();

$grid->column('updated_at', '更新时间')->sortable();

$grid->rows(function ($row, $index) {

$row->column('row_number', $index + 1);

});

return $grid;

}

```

代码解释如下:

- 在 grid 中定义了展示列,其中 `$grid->column('id', 'ID')->sortable();` 表示展示数据表中 id 列,并且支持排序(默认支持排序);

- 在展示列的后面加上一句操作:

```php

$grid->rows(function ($row, $index) {

$row->column('row_number', $index + 1);

});

```

表示在表格中为每一行添加一个 row_number 列,值为当前行的序号(index+1)

步骤三:打开 laravel-admin 的数据表格页面,在数据表格中应该会出现一个名为 row_number 的列,表示每一行的行索引,下图表示了在用户管理页面中添加行号的效果:

![laravel-admin 给 grid 添加行号的效果图](https://cdn.learnku.com/uploads/images/202112/31/31399/vfaKprNioR.png!large)

至此,我们就实现了在 laravel-admin 的数据表格中添加行号的操作。

四、总结

本文介绍了如何为 laravel-admin 的数据表格添加行号,通过重写数据表格中的 rows 方法,为每一行添加了一个名为 row_number 的列,并为其赋值为当前行的行号即可。此外,本操作也可以轻松应用到其他表格控件中。

当然,要知道 Laravel-Admin 提供了先进的封装和渲染机制。 它可以支持排序、筛选、搜索、多选、预览、编辑甚至导出等功能,都包含在里面,开箱即用,非常方便。使用 Laravel-Admin 不必拘泥于此,可以对其进行个性化定制,以满足各种需求。

后端开发标签