经验分享
在ThinkPHP5.1中对数据库进行查询操作并渲染到页面
准备工作: 有一个 demo 数据库该数据库有个 demo_user 表,该表中数据如下图 结构首先在 /application/index 目录下有一个 view/index/index.html
2021-02-02 05:44:11
1789

准备工作:

  • 有一个 demo 数据库
  • 该数据库有个 demo_user 表,该表中数据如下图

结构

首先在 /application/index 目录下有一个 view/index/index.htmlcontroller/Index.php model/User.php

  1. view/index/index.html 指的是模板视图层【呈现给用户看的】
  2. controller/Index.php 指的是【Index控制器】【这里的Index一定要与view层一一对应】
  3. model/User.php 指的是【User模型】【主要定义一些方法(操作数据)返回数据】

开发

首先展示model/User.php 代码

// model/User.php
<?php
namespace app\model;

use think\Model;// 使用thinkphp框架的Model类

// User模型  定义User模型继承Model类
class User extends Model {
    protected $table = 'demo_user';// 使用demo_user表

    // 获取用户表的信息
    public static function getUserList(){
        $user = User::where([])->select();// 执行SQL
        return $user;// 将拿到的数据返回出去
    }
}

controller/Index.php代码如下

// controller/Index.php
<?php
namespace app\index\controller;//这里定义index模块的控制器
//namespace app\admin\controller;//这里定义admin模块的控制器 

use think\Controller;// 使用thinkphp的Controller类
use app\model\User;// 使用自己定义的User模型

// 定义Index控制器继承Controller类
class Index extends Controller{
    // 定义Index控制器下的index操作方法
    public function index() {
        // 定义user为User模型的getUserList方法返回的数据
        // 并将数据通过assign方法传递给模板
        $this -> assign([
            'user' => User::getUserList()
        ]);
        // 渲染模板
        return $this->fetch();
    }
}

view/index/index.html 代码如下

<!-- view/index/index.html -->
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        table { border-top: 1px solid #999; border-left: 1px solid #999; border-spacing: 0; margin: 0 auto; }
        th,td{width:140px;border: 1px solid #444;text-align: center;}
    </style>
</head>
<body>
    <table>
        <thead>
            <tr>
                <th>id</th>
                <th>用户名</th>
                <th>密码</th>
                <th>手机号</th>
            </tr>
        </thead>
        <tbody>
            <!-- 以上都是一些HTML与CSS代码,不做过多介绍 -->
            <!-- 
                volist我的理解是接受控制器传给模板的数据
                    使用$user来接收控制器传给模板的user
            -->
            {volist name="$user" id="user"}
            <tr>
                <td>{$user.id}</td>
                <td>{$user.uname}</td>
                <td>{$user.password}</td>
                <td>{$user.mobile ? $user.mobile : '手机号不存在'}</td>
            </tr>
            {/volist}
        </tbody>
    </table>
</body>
</html>

效果如图: