首页 > 编程语言 >ThinkPHP6实现增删改查接口

ThinkPHP6实现增删改查接口

时间:2024-03-02 13:24:49浏览次数:29  
标签:return utf8mb4 改查 ThinkPHP6 json user unicode 增删 id

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出现的问题
image

#修改整个数据库字符集
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);
        }
    }
}

新增
image
修改
image
ID查询单条数据
image
删除
image
列表查询所有数据
image

标签:return,utf8mb4,改查,ThinkPHP6,json,user,unicode,增删,id
From: https://www.cnblogs.com/aeolian/p/18048510

相关文章

  • k8s标签的增删改查和选择器
    在Kubernetes(K8s)中,标签(Label)是与资源对象相关联的键值对,用于实现多维度的资源分组管理功能。下面是关于Kubernetes标签的增删改查操作的简要说明:查询标签(查)要查看资源对象的标签,可以使用kubectlget命令并加上--show-labels选项。例如,要查看所有节点的标签,可以运行:......
  • (六)ADO.NET用窗体应用程序写增删查改——删(1.1升级版)
    在1.0版本中,我们的“删除”按钮只能在后台写死语句删除某条数据,这节通过选中dataGridView控件中数据进行任意删除。紧接上一节“增加”代码,我们在删除按钮中直接修改代码即可:一、双击“删除”按钮进入Click事件二、编写代码如下//1.创建连接数据库字符串......
  • Mybatis系列之(五)Mybatis在使用基于代理Dao的方式实现增删改查时都干了啥事儿
    Mybatis在使用基于代理Dao的方式实现增删改查时都干了啥事儿绝对路径:可能出现机器中没有D盘的情况,需要修改代码相对路径:部署项目后src就不存在了,需要修改代码基于以上两点,读取配置文件仅通过图中的两种方式进行读取构建者模式:专业的事儿由专业的人来做工厂模式:需要新的类的对......
  • Ant for Blazor做单个表的增删查改
    AntforBlazor做单个表的增删查改2024年02月27日花了一天时间弄出来了,基本弄好了,vs2022+blazorserver+net8,引用的AntDesign版本是0.17.4代码里的model和repository是用自己牛腩代码生成器生成的东西,sqlsugar的,记得在program里注入就好相关代码:@page"/Student"@usingSys......
  • (五)ADO.NET用窗体应用程序写增删查改(1.1升级版)
    在上一节我们写了一个简单的窗体应用程序增删查改,但只是限制于只能单条增加、修改、删除、查询,今天继续修改代码,让增加这个环节由用户自行输入然后增加。首先新增一个窗体,把数据库表中所需要的字段排版好。一、原“增加”按钮修改紧接着上一节项目,我们只需要把修改按钮事件修......
  • 如何实现增删Tab页签(ArkUI)
    场景介绍部分应用在使用过程中需要自定义添加或删除标签的场景,比如在浏览器中的顶部标签栏中需要新打开或关闭网页页签,而这种场景与Tabs组件效果类似,但Tabs组件不提供增加或删除页签的功能,不能自由的增加删除页签,需要开发者自己实现Tabs中增删页签功能。本文以浏览器中增加或删除......
  • 2024年1月Java项目开发指南7:增删改查与接口测试
    我们之前,是从Controller层写到Service层,然后mapper层。接下来我们反过来,从mapper层写到Controller层两种方式都可以,你喜欢就行,甚至你先写service层也可以,全凭个人喜欢。在本文中,就不解释太多了,直接给出代码,对于关键地方,我会圈出来。如果有问题,可以直接在本文首发地址(博客园......
  • python之实现文件增删改查操作
    实现文件增删改查操作         1.写入文件'''以w形式打开文件,写入记录'''1#!/usr/bin/python2withopen('test','w',encoding='utf-8')asf:3'''插入数据'''4f.writelines('......
  • 【VictoriaMetrics】一个小优化:循环改查表,性能提升56.48 倍
    作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢!cnblogs博客zhihuGithub公众号:一本正经的瞎扯做了一个vm-storage数据文件merge的工具。测试的时候发现decimal.CalibrateScale()这个函数特别慢。做了一个小优化,用查表法代替循环的乘法,性能提升明显。Benc......
  • es的增删改查
    1、新增索引#请求put192.168.1.139:9200/test11{"mappings":{"properties":{"title":{"type":"text"},"year":{"type":"date",......