masterfermin02/simple-data-grid

这是我编写的 simple-data-grid 包

v0.0.3 2024-01-06 03:44 UTC

This package is auto-updated.

Last update: 2024-09-24 16:38:36 UTC


README

Latest Version on Packagist Tests Total Downloads

Simple Data Grid 是一个 PHP 包,提供了一种简单的方法来从数据数组生成 HTML 表格。它支持自定义表头、行、CSS 类和表格属性。

安装

您可以通过 composer 安装此包

composer require masterfermin02/simple-data-grid

使用方法

以下是如何使用 Simple Data Grid 的基本示例

use Masterfermin02\SimpleDataGrid\SimpleGrid;

$headers = ['Name', 'Email', 'Phone'];
$rows = [
    ['John Doe', 'john@example.com', '123-456-7890'],
    ['Jane Doe', 'jane@example.com', '098-765-4321'],
];

echo SimpleGrid::fromArray($headers, $rows)->render();

这将生成一个具有指定表头、行、CSS 类和表格属性的 HTML 表格。

MySQL 数据库支持

此示例假设您在本地主机上运行着一个名为 mydatabase 的数据库,其中包含一个名为 users 的表和 idnameemail 列。

<?php

require __DIR__ . '/vendor/autoload.php';

use Masterfermin02\SimpleDataGrid\SimpleGrid;
use Masterfermin02\SimpleDataGrid\Database\MysqlQuery;
use Masterfermin02\SimpleDataGrid\Enums\DbTypes;

$grid = SimpleGrid::fromDatabase(
    server: 'localhost',
    username: 'myuser',
    password: 'mypassword',
    databaseName: 'mydatabase',
    dbType: DbTypes::MYSQL,
    port: 3306,
)
    ->mysqlQuery(
        new MysqlQuery(
            table: 'users',
            columns: ['id', 'name', 'email'],
        )
    );

echo $grid->render();

添加分页

<?php
        $grid = SimpleGrid::fromArray(
            header: ['id', 'name', 'email'],
            rows: [
                [1, 'John Doe', 'josh@estemail.com'],
                [2, 'John Doe2', 'josh2@estemail.com'],
                [3, 'John Doe3', 'josh3@estemail.com'],
                [4, 'John Doe4', 'josh4@estemail.com'],
                [1, 'John Doe', 'josh@estemail.com'],
                [2, 'John Doe2', 'josh2@estemail.com'],
                [3, 'John Doe3', 'josh3@estemail.com'],
                [4, 'John Doe4', 'josh4@estemail.com'],
            ],
        )
            ->itemPerPage(3)
            ->currentPage(
                    $_GET['page'] ?? 1
            );

    echo $grid->render();
    echo (new PaginatorNav(
        $grid
    ))->render();

在此示例中,使用 SimpleGrid::fromDatabase 创建一个新的连接到 MySQL 数据库的 SimpleGrid 实例。然后使用 mysqlQuery 方法在 users 表上执行 SELECT 查询,选择 idnameemail 列。最后调用 render 方法生成数据网格的 HTML。

截图

N|Solid

使用 Laravel 模型

<?php
    $grid = SimpleGrid::fromArray(
            header: ['id', 'name', 'email'],
            rows: User::select('id','name', 'email')->get(),
        )
            ->itemPerPage(3)
            ->currentPage(
                    $_GET['page'] ?? 1
            );

    echo $grid->render();
    echo (new PaginatorNav(
        $grid
    ))->render();   

使用 Laravel 查询构建器

<?php
    $grid = SimpleGrid::fromArray(
            header: ['id', 'name', 'email'],
            rows: DB::table('users')->select('id','name', 'email')->get(),
        )
            ->itemPerPage(3)
            ->currentPage(
                    $_GET['page'] ?? 1
            );

    echo $grid->render();
    echo (new PaginatorNav(
        $grid
    ))->render();   

使用 Laravel Eloquent 光标

<?php
    $grid = SimpleGrid::fromIterator(
            header: ['id', 'name', 'email'],
            rows: User::select('id','name', 'email')->cursor(),
        )
            ->itemPerPage(3)
            ->currentPage(
                    $_GET['page'] ?? 1
            );

    echo $grid->render();
    echo (new PaginatorNav(
        $grid
    ))->render();   

测试

composer test

变更日志

请参阅 变更日志 了解最近的变化。

贡献

请参阅 贡献指南 了解详细信息。

安全漏洞

请查阅 我们的安全策略 了解如何报告安全漏洞。

致谢

许可协议

MIT 许可协议 (MIT)。有关更多信息,请参阅 许可文件


This `README.md` provides a brief description of the package, installation instructions, a usage example, and links to other important documents like the changelog, contributing guidelines, and license.