搜索
首页php框架ThinkPHP利用ThinkPHP6实现数据表格展示

利用ThinkPHP6实现数据表格展示

Jun 21, 2023 am 08:37 AM
thinkphp数据表格展示

随着互联网技术的发展,数据需求量越来越大,尤其是像企业、组织这样需要进行数据管理和分析的机构。在这样的背景下,数据表格成为了一种非常重要且常用的数据展示方式,因此掌握如何利用ThinkPHP6实现数据表格展示也变得非常必要。

ThinkPHP是一款流行的PHP开发框架,其使用了MVC架构和面向对象的编程思想,通过类库封装和模块化设计,可以大大提高代码可读性、可维护性以及开发效率。在使用ThinkPHP6实现数据表格展示方面,它也提供了一些便利的方法和工具,下面我们就来介绍一下如何使用ThinkPHP6实现数据表格展示。

  1. 数据库建表与数据模型类

首先,我们需要在数据库中建立表格,并创建数据库模型类来调用和操作这些数据。例如,我们创建一个学生信息表格,其中包含id、name、age、gender四个字段。那么我们在数据库中创建这些字段,同时在ThinkPHP的Model目录下创建一个StudentModel.php的数据模型类来调用和操作这些数据,其中代码如下:

namespace appmodel;

use thinkModel;

class StudentModel extends Model
{
    protected $table = 'student';

    public function getStudents()
    {
        return $this->field('id,name,age,gender')->order('id')->select();
    }
}
  1. 控制器和视图

接下来,我们需要在ThinkPHP的Controller目录下创建一个StudentController.php的控制器类,来处理数据逻辑和渲染页面。其中,我们可以使用Controller类的assign方法将从数据库中获取的数据赋值给模板变量,以便在view视图中使用。

在视图方面,我们可以使用layui等前端框架来实现数据表格的渲染和展示。思路是,向前端提供一个json格式的数据,再将这些数据渲染到表格当中。例如,以下为使用layui实现的学生信息表格展示页面:

控制器代码如下:

namespace appcontroller;

use appmodelStudentModel;
use thinkController;

class StudentController extends Controller
{
    public function index()
    {
        $studentModel = new StudentModel();
        $students = $studentModel->getStudents();
        $this->assign('students', $students);
        return $this->fetch('index');
    }
}

视图代码如下:

<!DOCTYPE html>
<html>

<head>
    <meta charset="UTF-8">
    <title>学生信息表格</title>
    <link rel="stylesheet" href="/layui/css/layui.css">
    <script src="/layui/layui.js"></script>
</head>

<body>
    <table class="layui-table">
        <thead>
            <tr>
                <th>ID</th>
                <th>姓名</th>
                <th>年龄</th>
                <th>性别</th>
            </tr>
        </thead>
        <tbody>
            {% for student in students %}
            <tr>
                <td>{{ student.id }}</td>
                <td>{{ student.name }}</td>
                <td>{{ student.age }}</td>
                <td>{{ student.gender }}</td>
            </tr>
            {% endfor %}
        </tbody>
    </table>
</body>

</html>

3.增加分页和搜索功能

我们还可以对学生信息表格增加分页和搜索功能,优化用户体验。在ThinkPHP6中,实现这两个功能非常便捷。以下是具体的步骤:

(1) 分页功能

我们可以使用ThinkPHP6提供的paginate()方法,将获得的学生信息数据按照给定的一页显示数据大小进行分页,具体代码如下:

$students = $studentModel->paginate(10);

在视图中,我们可以利用layui等前端框架来实现分页的展示,例如在body内加上:

<div id="page" style="margin-top: 30px; text-align: center;"></div>

<!-- 定义js -->
<script>
    layui.use(['laypage'], function () {
        var laypage = layui.laypage;
        laypage.render({
            elem: 'page', //注意,这里的 test1 是 ID,不用加 # 号
            count: {{ students.total }}, //数据总数
            limit: {{ students.list_rows }}, //显示的条数
            curr: {{ students.currentPage }}, //当前页数
            theme: '#1E9FFF',
            jump: function (obj, first) {
                //首次不执行
                if (!first) {
                    //跳转到新页面
                    window.location.href = '?page=' + obj.curr;
                }
            }
        });
    });
</script>

(2) 搜索功能

我们可以使用ThinkPHP6提供的where()方法,根据搜索关键词对学生信息数据进行筛选,具体代码如下:

$keyword = input('get.keyword');
$students = $studentModel
                ->where('name', 'like', "%{$keyword}%")
                ->paginate(10);

在视图中,我们可以利用TableFilter等前端插件来实现搜索的展示和功能实现,例如在头部加上:

<form class="layui-form" action="/" method="get"
    style="margin-bottom: 20px; text-align: right;">
    <input type="text" name="keyword" id="keyword" placeholder="请输入姓名" autocomplete="off"
        class="layui-input" style="width: 200px; display: inline-block;">
    <button class="layui-btn" lay-submit lay-filter="search">搜索</button>
</form>

<!-- 定义js -->
<script>
    layui.use('tableFilter', function () {
        var tableFilter = layui.tableFilter;
        var tf = new tableFilter('studentTable', {
            filters: [{
                field: 1,
                mode: 'like'
            }]
        });
    });
</script>

总结

使用ThinkPHP6实现数据表格展示多才多艺、方便快捷,为企业以及想要在互联网上进行数据管理和分析的组织和个人提供了非常有价值的工具。以上所述,就是如何利用ThinkPHP6实现数据表格展示的方法。掌握了这些技巧,我们可以轻松地实现各种展示需求,提高数据展示、管理和分析的效率。

以上是利用ThinkPHP6实现数据表格展示的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

SublimeText3 英文版

SublimeText3 英文版

推荐:为Win版本,支持代码提示!

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

WebStorm Mac版

WebStorm Mac版

好用的JavaScript开发工具

mPDF

mPDF

mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),