当前位置: 首页 > news >正文

创建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 中,模型层提供了便捷的数据库操作方法,框架会自动生成一些常见的方法,例如 selectinsertupdatedelete,这些方法是由 ThinkPHP 的 ORM(对象关系映射)机制和 模型类 自动支持的。

ThinkPHP 使用 模型 来简化与数据库的交互。在模型中,你不需要手动编写复杂的 SQL 查询语句,框架会为你生成常见的数据库操作方法。

当你创建了一个模型类,ThinkPHP 会自动提供一系列的方法,这些方法允许你轻松地进行数据库操作。以下是几个常见的自动生成方法:

  • select():查询多条记录。
  • find():查询单条记录。
  • insert():插入数据。
  • update():更新数据。
  • delete():删除数据。
  • save():根据主键更新数据或插入数据(用于更新或新增)。

这些方法是由 模型类 中自动继承的。例如,如果你有一个 User 模型类,它将自动支持如 selectinsertupdate 等方法。

**模版部分,采用<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

相关文章:

  • 微服务架构中的多进程通信--内存池、共享内存、socket
  • Java期末总复习 编程题(偏基础)
  • Python数据可视化再探——Matplotlib模块 之一
  • Unity入门学习(四)3D数学(4)之四元数Quaternion
  • python新手学习笔记①
  • Vue2到Vue3迁移问题解析
  • uniapp-商城-63-后台 商品列表(分类展示商品的删除)
  • GO语言学习(六)
  • Python实战:打造一个功能完整的单位转换器(长度/温度/货币)
  • 5.20打卡
  • 解决git中断显示中文为八进制编码问题
  • StreamSaver实现大文件下载解决方案
  • 基于R语言的贝叶斯网络建模:生态与环境因果推断实践
  • Linux网络编程:广播、组播与原始套接字
  • DAY31
  • 电力设备智能化方案复盘
  • AI筑基,新质跃升|英码科技亮相华为广东新质生产力创新峰会,发布大模型一体机新品,助力产业智能化转型
  • Y1大型游乐设施修理作业包含哪些
  • win10使用nginx做简单负载均衡测试
  • 日语学习-日语知识点小记-构建基础-JLPT-N4阶段(25):受身形(3)
  • 钟睒睒:不反对代工,但农夫山泉目前所有产品是无法代工的
  • 印度空军为“阵风”战机换装国产导弹,以增强作战能力推动国防自主
  • 马上评|去年维修竣工的鼓楼,今年就“瀑布式落瓦”
  • 财政部:今年将和住建部选拔第二批20个城市,高质量推进城市更新行动
  • 离休干部周惠梅逝世,曾从事多年地下革命工作
  • 东南亚五大经济体一季度增长放缓,美国关税大棒或阻全年增长