Skip to content

适用虚谷数据库版本

v12.9



适用虚谷数据库版本

v12.9


thinkphp 使用手册

📄字数 2.3K
👁️阅读量 加载中...

thinkphp 是一个面向对象,简易、快速的轻量级 php 开发框架,本文档将介绍 XuguDB 对 thinkphp 框架的适配情况,并简易描述使用 thinkphp 开发 XuguDB 应用的 Demo 指南。

框架名称适配起始版本官网地址源框架下载地址XuguDB框架下载demo程序地址
thinkphp5.0.1thinkphp官网-版本发布列表xugu-thinkphp

提示

版本发布列表源代码压缩包即为产品压缩包。
其他适配版本可详见版本发布列表

一、方言包使用说明


XuguDB thinkphp 方言包有两个文件目录,在获取到方言包压缩包后,按以下步骤安装方言包。

  • builder 文件夹下的 Xugusql.php 复制到 thinkphp 应用的 \vendor\topthink\think-orm\src\db\builder 目录下。

  • connector 文件夹下的 Xugusql.php 复制到 thinkphp 应用的 \vendor\topthink\think-orm\src\db\connector 目录下。

  • 编辑 thinkphp 的 .env 文件。
php
[APP]
DEFAULT_TIMEZONE = Asia/Shanghai

[DATABASE]
TYPE = xugusql
HOSTNAME = 127.0.0.1
DATABASE = SYSTEM
USERNAME = SYSDBA
PASSWORD = SYSDBA
HOSTPORT = 5138
CHARSET = utf8
DEBUG = true

[LANG]
default_lang = zh-cn
  • 编辑 config/database.php 文件。
php
<?php
return [
    'default'     => 'xugusql',
    'connections' => [
        'xugusql' => [
            'type'     => 'xugusql',
            'hostname' => env('database.hostname', '127.0.0.1'),
            'database' => env('database.database', 'SYSTEM'),
            'username' => env('database.username', 'SYSDBA'),
            'password' => env('database.password', 'SYSDBA'),
            'hostport' => env('database.hostport', '5138'),
            'charset'  => env('database.charset', 'utf8'),
            'prefix'   => env('database.prefix', ''),
        ],
    ],
];

提示

不同的 thinkphp 版本文件存放的上层目录结构可能有些许的变动,具体存放位置请查看 thinkphp 目录结构。
不同的 thinkphp 的数据库配置文件方式存在差异,具体配置情况请查看 thinkphp 官方说明。

二、连接示例程序

本章节将介绍在 thinkphp 应用连接 XuguDB 。

2.1 前提条件

  • 已安装 php。
  • 已安装 thinkphp6。
  • 已安装 think 模板引擎。
  • 已部署 XuguDB 12.0.0 或有能连接访问的虚谷数据库实例。

提示

本文是在 thinkphp 6.1.5 版本中进行操作说明,若使用其它版本环境,那么与本文中的步骤可能存在不同。

2.2 操作步骤

2.2.1 配置数据库

根据 方言包使用说明 中配置说明和 XuguDB 连接信息修改配置文件 .env 与数据库配置文件 config/database.php

2.2.2 创建数据库表

使用控制台工具或 DBeaver 工具连接到虚谷数据库实例,执行以下 SQL ,创建待使用的数据库表,并插入一条信息。

sql
CREATE TABLE `user` (
    `id` int IDENTITY PRIMARY key,
    `name` varchar(255) NOT NULL DEFAULT '',
    `email` varchar(255) NOT NULL DEFAULT '',
    `create_time` datetime DEFAULT NULL,
    `update_time` datetime DEFAULT NULL
) ;

INSERT into `USER`(`NAME`,`email`) values('XuguDB','xugu@test.com');

2.2.3 启动应用访问接口

在 demo 根目录下打开命令行工具,执行以下命令,启动 thinkphp 应用:

cmd
php think run

该 Demo 项目提供四个接口链接,接口源码编写在 app/controller/UserController.php 文件,功能详情如下表:

接口名称接口访问链接接口展示功能
userhttp://localhost:8000/user/获取所有数据并且展示
createhttp://localhost:8000/user/create/填写表单保存新增一条数据
edithttp://localhost:8000/user/:id/edit修改某条数据内容
deletehttp://localhost:8000/user/:id/delete删除一条数据

路由映射编写在 route/app.php 文件中。

php
Route::get('user/create', 'UserController/create');
Route::post('user/save', 'UserController/save');
Route::get('user/:id/edit', 'UserController/edit');
Route::post('user/:id/update', 'UserController/update');
Route::get('user/:id/delete', 'UserController/delete');

三、常见问题&解决办法

在使用 thinkphp 连接 XuguDB 时,可能会遇到各种错误。以下列举一些常见的错误及其处理方法。

3.1 数据库配置未定义:XXX

数据库信息配置错误,一般为是配置位置书写错误或配置信息出错,从而报错。

3.2 Driver [Think] not supported

未安装模板引擎依赖,或者 thinkphp 为 thinkphp6 版本,模板引擎为 think 而不是 Think 。

3.3 路由修改未生效

通常是路由缓存未清理,导致修改未加载。执行 php think clear:route 清理缓存。

3.4 一直跳转控制器的 index 方法

删除 Route::get('user', 'User/index'); 路由设置。