创建thinkphp项目并配置数据库
配置环境并引入UI
ssr模式
使用 composer 命令在指定的目录安装 Thinkphp6.x
composer create-project topthink/think tp6demo
出现Fatal error: Directive ‘track_errors’ is no longer available in PHP in Unknown on line 0说明你的php版本较高,在php.ini中track_errors=Off
修改.env 文件,配置数据库、帐号密码,以及开启调试
就用123吧
运行成功后,我们将要引入 Bootstrap 的 UI 库,
直接将 Bootstrap 包含 js 和 css 文件夹拷贝项目中 public/static 里;
配置 config/view.php,设置静态调用的模版路径;
// 模版替换输出
‘tpl_replace_string’ => [
‘JS’ => ‘…/static/js’,
‘CSS’ => ‘…/static/css’,
],
在默认控制器 Index.php 创建一个 test()方法,用于测试 UI 引入的正确性;
<?php
namespace app\controller;use app\BaseController;
use think\App;
use think\facade\View;class Index extends BaseController
{public function index(){return View::fetch('index');}}
没有驱动,安装
composer require topthink/think-view
创建数据库
-- 创建 student 数据库
CREATE DATABASE IF NOT EXISTS student;-- 使用 student 数据库
USE student;-- 创建 tp_user 表
CREATE TABLE IF NOT EXISTS tp_user (id MEDIUMINT(8) NOT NULL AUTO_INCREMENT PRIMARY KEY, -- 自动编号,主键username VARCHAR(20) NOT NULL, -- 用户名,不能为空password CHAR(40) NOT NULL, -- 密码,不能为空gender CHAR(1) NOT NULL DEFAULT '男', -- 性别,不能为空,默认为 '男'email VARCHAR(100) NOT NULL, -- 邮箱,不能为空status TINYINT(1) NOT NULL, -- 状态,不能为空create_time DATETIME NOT NULL DEFAULT '1970-01-01 00:00:00', -- 创建时间,默认为 1970-01-01update_time DATETIME NOT NULL DEFAULT '1970-01-01 00:00:00', -- 更新时间,默认为 1970-01-01INDEX (username) -- 可以为 username 字段添加索引(如果需要)
);
-- 插入数据到 tp_user 表
INSERT INTO tp_user (username, password, gender, email, status, create_time, update_time)
VALUES('user1', 'password1', '男', 'user1@example.com', 1, NOW(), NOW()),('user2', 'password2', '女', 'user2@example.com', 0, NOW(), NOW()),('user3', 'password3', '男', 'user3@example.com', 1, NOW(), NOW()),('user4', 'password4', '女', 'user4@example.com', 1, NOW(), NOW()),('user5', 'password5', '男', 'user5@example.com', 0, NOW(), NOW()),('user6', 'password6', '男', 'user6@example.com', 1, NOW(), NOW()),('user7', 'password7', '女', 'user7@example.com', 0, NOW(), NOW()),('user8', 'password8', '男', 'user8@example.com', 1, NOW(), NOW()),('user9', 'password9', '女', 'user9@example.com', 1, NOW(), NOW()),('user10', 'password10', '男', 'user10@example.com', 0, NOW(), NOW());
使用如下命令来生成一个资源控制器:User.php;
php think make:controller User
创建 model 下的 User.php
设置路由,方便访问:
//用户模块资源路由
Route::resource('user', 'User');
获取数据,并将输入传入模版;
在User控制器中添加
return View::fetch('index', [
'list' => UserModel::select()]);
在 ThinkPHP 中,模型层提供了便捷的数据库操作方法,框架会自动生成一些常见的方法,例如 select
、insert
、update
和 delete
,这些方法是由 ThinkPHP 的 ORM(对象关系映射)机制和 模型类 自动支持的。
ThinkPHP 使用 模型 来简化与数据库的交互。在模型中,你不需要手动编写复杂的 SQL 查询语句,框架会为你生成常见的数据库操作方法。
当你创建了一个模型类,ThinkPHP 会自动提供一系列的方法,这些方法允许你轻松地进行数据库操作。以下是几个常见的自动生成方法:
select()
:查询多条记录。find()
:查询单条记录。insert()
:插入数据。update()
:更新数据。delete()
:删除数据。save()
:根据主键更新数据或插入数据(用于更新或新增)。
这些方法是由 模型类 中自动继承的。例如,如果你有一个 User
模型类,它将自动支持如 select
、insert
、update
等方法。
**模版部分,采用<volist>遍历显示数据即可;**{volist name="list" id="obj"}<tr>
{volist name="list" id="obj"}
<tr>
<td class="text-center">{$obj.id}</td>
<td>{$obj.username}</td>
<td class="text-center">{$obj.gender}</td>
<td>{$obj.email}</td>
<td class="text-center">
<span class="badge badge-{$obj.badge}">{$obj.status}</span>
</td>
<td class="text-center">{$obj.create_time}</td>
<td class="text-center">
<button class="btn btn-danger btn-sm">删除</button>
<button class="btn btn-warning btn-sm">修改</button>
</td>
</tr>
{/volist}
现在你已经配置好一个项目了
end