ThinkPHP增删改查接口实现
数据库连接配置
当.env文件中存在数据库配置时,这些配置会覆盖config/database.php中的相应配置。
在config/database.php中设置数据库连接的默认值或开发环境的值,并在.env文件中根据实际部署环境(如测试或生产环境)覆盖这些值。这样,你可以通过更改环境变量来调整配置,而无需修改代码中的配置文件,这有助于提高应用的安全性和灵活性。
数据库
CREATE TABLE `user` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
`username` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '用户民',
`email` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '邮箱',
`created_at` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updated_at` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
出现问题,新建数据库时没设置charset字符集时,默认使用latin1出现的问题
#修改整个数据库字符集
ALTER DATABASE test CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;
#只修改表字符集
ALTER TABLE user CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
#只修改列字符集
ALTER TABLE user CHANGE username username VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
Model实体类
在app/model下面新建UserModel实体类
<?php
namespace app\model;
use think\Model;
class User extends Model
{
// 数据表名(数据库中的表名是user)
protected $table = 'user';
// 主键
protected $pk = 'id';
// 设置字段信息
protected $schema = [
'id' => 'int',
'username' => 'string',
'email' => 'string',
'created_at' => 'datetime',
'updated_at' => 'datetime',
];
}
Controller
<?php
namespace app\controller;
use app\BaseController;
use app\model\User;
use think\Request;
class UserController extends BaseController
{
// 获取用户列表
public function index()
{
$users = User::select();
return json($users);
}
// 创建用户
public function save(Request $request)
{
$data = $request->param();
$user = User::create($data);
return json($user);
}
// 获取指定用户信息
public function read($id)
{
$user = User::find($id);
if ($user) {
return json($user);
} else {
return json(['error' => '读取失败,用户不存在'], 404);
}
}
// 更新用户信息
public function update(Request $request, $id)
{
$data = $request->param();
$user = User::find($id);
if ($user) {
$user->save($data);
return json($user);
} else {
return json(['error' => '更新失败,用户不存在'], 404);
}
}
// 删除用户
public function delete($id)
{
$result = User::destroy($id);
if ($result) {
return json(['message' => '删除成功']);
} else {
return json(['error' => '删除失败,用户不存在'], 404);
}
}
}
新增
修改
ID查询单条数据
删除
列表查询所有数据