rep98/dt-laravel-eloquent

Simple DataTable para Laravel Eloquent

v0.5.3 2024-08-31 20:13 UTC

This package is auto-updated.

Last update: 2024-10-01 00:23:18 UTC


README

这是一个简单但强大的DataTable,专为Laravel的集合和Eloquent设计,其集成和使用非常简单。

Capture de Pantalla

安装

首先将组件集成到我们的项目中

composer require rep98/dt-laravel-eloquent

然后发布供应商

php artisan vendor:publish --provider="DTLaravelEloquent\RDataTableServiceProvider"

最后,可选地,我们可以运行它来安装组件

php artisan RDT:install

如果我们想修改js或css,可以传递--raw标志,[推荐安装npm]

使用

use DTLaravelEloquent\RDT;

function index() {
    $dt = RDT::make(User::all())
        ->exclude(["password"])
        ->render()
    return view("auth.users", compact("dt"))
}

在Blade中使用

{{-- para el export --}}
<meta name="csrf-token" content="{{ csrf_token() }}">
{{-- Añadimos los script --}}
<x-dt::scripts />
{{-- la tabla --}}
{!! $dt !!}

很简单,不是吗?

配置

该项目使用 fiduswriter/simple-datatables 来有效地处理表格,因此其配置与此组件相匹配

配置选项

如我所述,所有配置选项都来自组件 fiduswriter/simple-datatables,并进行了一些调整和例外。

以下将解释调整和例外,如需了解其余选项,请访问 Simple Datatables 选项

导出选项

  • export.name 包含当使用 ExcelPDF 时生成的文件名。

JS组件配置选项

配置类

RDTOptions 类用于设置配置选项,然后将其转换为用于 fiduswriter/simple-datatables 的JavaScript对象

其方法

  • __construct(array $options = []) 初始化选项类,接收将使用的选项。
  • set(string $key, mixed $value): RDTOptions 允许设置新选项或更新现有选项。
  • merge(array $options): RDTOptions 允许合并多个选项
  • toArray(): array 将配置的选项导出为一个数组。
  • toCollect(): Collection 将配置的选项导出为Laravel的集合。

该类具有受保护的 protected 方法,允许设置默认选项和自动获取语言或日期设置。

魔法

RDT 类,这是此组件的主要类,基本上,所有必要的操作都通过它来打印漂亮的表格数据。

return RDT::DB(MyModel::all())
    ->setOption(['sortable' => false])
    ->humanHeaders([
        "created_at"=>"Fecha de Registro"
    ])
    ->excludeFields([
        'id', 'updated_at'
    ])
    ->render();

其方法

静态方法

  • RDT::collection(Collection $data): RDT 接收一个Laravel集合并初始化组件。
  • RDT::DB(Collection $data): RDT 接收一个Laravel Eloquent集合并初始化组件。
  • RDT::make(Collection $data): RDT 接收一个Laravel集合或Eloquent集合并初始化组件。

公共方法

  • setOption(RDTOptions $options): RDT 允许为当前数据设置配置选项。
  • getOptions(): RDTOptions 返回设置的选项。
  • mergeOptions(array|RDTOptions $options): RDT 允许合并新选项与现有选项,这在需要使用条件或动态数据时很有用。
  • log(): RDT 为此表初始化日志记录。
  • excludeFields(array $fields): RDT 允许从构造函数中传递的数据中排除字段。
  • getData(): array 允许获取处理过的数据。
  • getRawData() : array 允许获取未处理的数据。
  • set_uniqueID(string $id): RDT 允许为该表设置一个唯一标识符;默认情况下,使用 Str 类的 uuid 函数来生成。
  • render() 这可能是最重要的函数,也是除构造函数外唯一必须的函数,负责返回生成的表格视图。

命令

DTLaravelEloquent 集成了一个名为 RDT:install 的命令,其功能是允许使用未编译的文件,以便您可以按需修改它们。为此,您必须使用 --raw 标志,因为如果不使用该标志,则仅会将 dist 文件夹复制到您的公共文件夹。

视图

DTLaravelEloquent 提供了一个视图组件,允许从其公共文件夹获取 CSS 和 JS 文件,以便正确显示表格。

附加

此包是使用 fiduswriter/simple-datatables 以及 Bootstrap 5.3 开发的,并使用了 Bootstrap Icon 的 SVG 图标,已在 Laravel 版本 11 上进行了测试。

此开发的目的在于帮助实现一个简单、快速、高效的 Datatable。