>PHP 프레임워크 >ThinkPHP >ThinkPHP6을 사용하여 데이터 테이블 표시 실현

ThinkPHP6을 사용하여 데이터 테이블 표시 실현

王林
王林원래의
2023-06-21 08:37:392064검색

인터넷 기술의 발달로 인해 데이터에 대한 수요가 증가하고 있으며, 특히 데이터를 관리하고 분석해야 하는 기업이나 조직 등의 기관에서는 더욱 그렇습니다. 이러한 맥락에서 데이터 테이블은 데이터를 표시하는 데 매우 중요하고 일반적으로 사용되는 방법이 되었기 때문에 ThinkPHP6을 사용하여 데이터 테이블을 표시하는 방법을 익히는 것이 매우 필요해졌습니다.

ThinkPHP는 MVC 아키텍처와 객체 지향 프로그래밍 아이디어를 사용하는 인기 있는 PHP 개발 프레임워크입니다. 클래스 라이브러리 캡슐화 및 모듈식 설계를 통해 코드 가독성, 유지 관리성 및 개발 효율성을 크게 향상시킬 수 있습니다. ThinkPHP6을 사용하여 데이터 테이블 표시를 구현하는 측면에서 ThinkPHP6을 사용하여 데이터 테이블 표시를 구현하는 몇 가지 편리한 방법과 도구도 제공합니다.

  1. 데이터베이스 테이블 생성 및 데이터 모델 클래스

먼저 데이터베이스에 테이블을 생성하고, 이러한 데이터를 호출하고 운용하기 위한 데이터베이스 모델 클래스를 생성해야 합니다. 예를 들어, ID, 이름, 나이, 성별의 네 가지 필드가 포함된 학생 정보 테이블을 만듭니다. 그런 다음 데이터베이스에 이러한 필드를 생성하고 동시에 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. Controller 및 view

다음으로 데이터 로직을 처리하고 페이지를 렌더링하기 위해 ThinkPHP의 Controller 디렉터리에 Controller 클래스 StudentController.php를 생성해야 합니다. 그 중 Controller 클래스의 할당 메소드를 사용하면 데이터베이스에서 얻은 데이터를 뷰에서 사용할 템플릿 변수에 할당할 수 있습니다.

뷰 측면에서는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와 같은 프런트엔드 프레임워크를 사용할 수 있습니다. 예를 들어 본문에 다음을 추가할 수 있습니다.

<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) 검색 기능

에서 제공하는 where() 메서드를 사용할 수 있습니다. 검색 키워드를 기반으로 검색하는 ThinkPHP6 학생 정보 데이터를 필터링하기 위해 구체적인 코드는 다음과 같습니다:

$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>

Summary

ThinkPHP6을 사용하여 구현 데이터 테이블 표시는 다양하고 편리하며 빠르며 인터넷에서 데이터를 관리하고 분석하려는 기업은 물론 조직과 개인에게 매우 귀중한 도구를 제공합니다. 위는 ThinkPHP6을 사용하여 데이터 테이블을 표시하는 방법입니다. 이러한 기술을 익히면 다양한 디스플레이 요구 사항을 쉽게 실현하고 데이터 표시, 관리 및 분석의 효율성을 향상시킬 수 있습니다.

위 내용은 ThinkPHP6을 사용하여 데이터 테이블 표시 실현의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.