Correction status:Uncorrected
Teacher's comments:
注意:ThinkPHP6.0运行环境要求PHP7.1+,因此在安装TP框架之前需要检测一下当前的PHP版本。可以使用
php -v
命令来查看PHP版本。
php -v
自从TP6.0开始,必须通过Composer方式安装和更新,所以无法通过git下载。因此我们还需要检测一下是否安装了Composer,使用
composer -v
命令来查看。
componser -v
Composer工具的具体安装方法参考:Composer中文文档
# 全新安装TP框架
composer create-project topthink/think tp
如果以前安装过TP
框架,可以切换到应用根目录下执行以下命令更新框架。
# 更新框架
composer update topthink/framework
注意:更新框架核心代码会删除thinkphp目录,因此不要在核心框架里书写任何业务逻辑代码,该操作不会删除应用目录(app目录)。
由于TP
框架安装后默认的是单应用模式,如果要使用多应用模式需要先将app
目录下的controller
文件夹全部删除,然后在应用根目录下执行下面的命令安装多应用扩展。
# 部署多应用
composer require topthink/think-multi-app
# 命令格式
php think build 目录名称
# 生成后台应用目录
php think build admin
# 生成前台应用目录
php think build index
# 生成控制器
php think make:controller 应用名称@应用类名 --plain
其中—plain也可以省略,如果省略了这个参数,那么生成的控制类会稍有不同,如果下图对比:
通过对比可以发现,如果不带--plain
参数的话,不仅仅会自动创建index()
方法,还会自动生成一些其他方法。
# 如果需要think-template模板引擎,需要先安装think-view模板引擎驱动
composer require topthink/think-view
class Index extends BaseController
{
// 查询语句
// 1. ` find ` 方法查询单条语句,结果返回一维数组,如果数据不存在,返回 null
public function find() {
$result = Db::table('boke')->find(1);
var_dump($result);
}
// 2. ` select ` 方法查询多条数据,结果返回一个对象,数据如果不存在,返回空对象
public function select() {
$result = Db::table('boke')->where('status', 0)->select();
var_dump($result);
}
// 3. ` value ` 方法查询某个字段的值,结果返回文本,数据不存在,返回 null,字段不存在会报错
public function value() {
$result = Db::table('boke')->value('id');
var_dump($result); // 返回值类型是一个 mixed
}
// 4. ` column ` 查询某一列的值,如果存在返回一维数组,不存在返回空数组
public function column() {
$result = Db::table('boke')->column('img');
var_dump($result);
}
// ================================================================================
// 添加语句
// 1. ` insert ` 添加一条语句,成功返回条数
public function insert() {
$data = [
'title' => '在线考试系统实战【公益直播】',
'img'=>'https://img.php.cn/upload/course/000/000/001/60862c6ba99af257.png',
'content'=>'三天大型公益直播课《模仿驾校考试系统实战开发》,使用框架: bootstrap、jquery、ThinkPHP6.0',
'date'=>'2021-05-06',
'cat'=>'PHP'
];
$result = Db::table('boke')->insert($data);
var_dump($result);
}
// 2. ` insertGetId ` 添加一条数据,成功返回自增的主键
public function insertGetId() {
$data = [
'title'=>'新版APP全新上线,打造最佳学习体验',
'img'=>'https://img.php.cn/upload/article/000/000/003/6093abebf1766794.jpg',
'content'=>'程序员梦开始的地方,支持视频课程、直播课堂、手册等学习功能',
'date'=>'2021-05-08',
'cat'=>'APP'
];
$result = Db::table('boke')->insertGetId($data);
var_dump($result);
}
// 3. ` insertAll ` 添加多条数据(批量添加),成功返回添加的条数
public function insertAll() {
$data = [
[
'title'=>'在线报名系统(移动端)实战【公益直播】',
'img'=>'https://img.php.cn/upload/course/000/000/001/6072932baeb4e177.png',
'content'=>'大型公益课,2021.4.12号晚上20:00开始,连续5晚,全程直播,一起开发一个中小学兴趣班报名系统!',
'date'=>'2021-04-23',
'cat'=>'PHP'
],
[
'title'=>'Vue.js开发基础',
'img'=>'https://img.php.cn/upload/course/000/000/015/6077fb8677ac6448.png',
'content'=>'Vue.js是非常流行的一个前端开发框架,采用渐进式底层向上开发模式,使用了主流的MVVM设计框架。本课以Vue.js开发的核心理念与常用技术为背景,让您在最短的时间内理解并掌握Vue.js框架的核心知识,为进一步深造打下良好的基础。',
'date'=>'2021-04-28',
'cat'=>'JS'
]
];
$result = Db::table('boke')->insertAll($data);
var_dump($result);
}
// 3. 修改语句
// - 3.1 update 修改数据,成功返回条数
// - 注意: 使用 ` update ` 更新数据
public function update() {
$data = ['title' => '修改后的标题'];
$result = Db::table('boke')->where('id', 1)->update($data);
var_dump($result);
}
// - 3.2 ` inc ` 自增字段的值
public function inc() {
# 字段的值增加1
$inc = Db::table('boke')->where('id', 1)->inc('num', 1)->update();
var_dump($inc);
# 字段的值增加5
$inc = Db::table('boke')->where('id', 1)->inc('num', 8)->update();
var_dump($inc);
}
// - 3.3 ` dec ` 自减字段的值
public function dec() {
# 字段值自减1
$dec = Db::table('boke')->where('id', 1)->dec('num', 2)->update();
var_dump($dec);
# 字段值自减5
$dec = Db::table('boke')->where('id', 5)->dec('num', 5)->update();
var_dump($dec);
}
// ================================================================================
// - delete 删除数据,成功返回条数,没有删除返回0
public function delete() {
# 根据条件删除数据
$result = Db::table('boke')->where('id', 1)->delete();
print_r($result);
# 删除逐主键为 2 的数据
$result = Db::table('boke')->delete(2);
var_dump($result);
# 删除整张表的数据
$result = Db::table('boke')->delete(true);
var_dump($result);
}
// - ` useSoftDelete ` 软删除,不建议真实删除数据,TP系统提供了软删除机制
public function useSoftDelete()
{
# 软删除
$delete = Db::table('boke')->where('id', 1)->useSoftDelete('status', 9)->delete();
print_r($delete);
}
}