thinkphp 8 安装 | 查询 | 模型 | 关联表

安装 

环境切换

composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/

检测

composer config -g -l

  

安装 目录tp

composer create-project topthink/think tp

  

自定义控制器 出现问题,No input file specified.

注意修改 入口文件下的 .htaccess

RewriteRule ^(.*)$ /index.php?/$1 [L]

  


 

 

 


 

链接数据库

1. 查询

// 引入Db数据库类
use think\facade\Db;
class User extends Basecontroller
{   public function get()
  {     // 连接user表,查询     Suser = Db::table("user")->select();     // 输出数据     return json($user),
  }
}

  

1.table方法
Db类旗下有一个 table 静态调用的方法,参数为完整的表名(前缀都不能省略);
如果希望只查询一条数据,可以使用** find() **方法,需指定  where 条件:

// 通过ID查询指定的数据
// find 方法查询结果不存在,返回 nu11,否则返回结果数组

$user = Db::table("user")->where("id",1)->find();

  

$user = Db::name("user")->where("id",1)->find();

  

查询单个字段值  

 


 

数据新增

1. 添加1条数据  insert ()  

 

使用 insertGetld()方法,可以在新增成功后返回当前数据 ID;

如果想强行新增,抛弃不存在的字段数据,则使用 strick(false)方法,忽略异常;

// 新增数据时,主键冲突时,直接修改这条记录
Db::name("user")->replace()->insert($data);

 2. 插入多条数据 


 

3. 更新数据  update()  

 

  数值自增  自减

 使用 Db::raw()来设置每个字段的特殊需求,灵活且清晰

 save()方法是一个通用方法,可以自行判断是新增还是修改(更新)数据

 


 

 

4. 数据删除 delete ()  

 


 

表达式查询

in 的使用 

 


 

案例  

条件 

前台页面代码 

表单前台显示 

 表单代码  

 前台搜索数据 留置的代码

 

 

查询语句  后台逻辑代码   

// join 连表
// field 要提取的字段  (x.* ) xsb 所有字段  , s.szx as sname  s表中的szx 字段取 别名 sname
// alias  别名

 

 

 


 

连贯操作 

field ()  字段  group()  having ()  的使用 

 其他查询    xsb数据表   szx 数据表中的字段 

 

 cache()   保存 文件位置  缓存本地文件 节省查询资源    cache( '缓存名字',   '时间60')

 redis  效果更好 

 

聚合查询   查询xsb 有多少条数据 .  count ()   max() 最大数    min()最小数    avg()平均数   sum ()   ... 

 

 

 


 

 


 

 

模型

1.定义模型

// 一般情况下 模型类名 和 表名(去前缀)一致
//  所有的自定义的模型类一定要继承基础模型类  think\Model

使用方法  规则 :

 案例 展示 : 

 

简单模型查询 1  

 简单查询 2  引入user 

 protected   模型设置表名

 如果 user 与 数据库表名不一致 , 需要单独设置  

 模型设置主键 

 


 

 

模型查询数据   : 

 

 

 

 

 


 

 

模型新增 

 案例 

 字段 添加

 数组添加

 字段限制 

 模型新增也提供了 replace()方法来实现 REPLACE into 新增;

 

批量添加 

 

使用 ::create()静态方法,来创建要新增的数据

 


 

 

模型数据删除  

 

 

 

软删除  

 

 

 

 

案例  :  

 前台代码 

 后台逻辑代码 

 

 

 


 

模型更新操作  

 

 字段数量增加  

 

批量修改  

 

 修改数据静态方法  :

 


 

 


 

 

模型字段设置 

 

 

废弃字段  

 

 

设置只读字段 

 


 

获取器  

1.获取器
获取器的作用是对模型实例的数据做出自动处理;
一个获取器对应模型的一个特殊方法,该方法为 public; 方法名的命名规范为:getFieldAttr();
举个例子,数据库表示状态 status 字段采用的是数值;
而页面上,我们需要输出 status 字段希望是中文,就可以使用获取器

 设置状态  商品 

 

 


 

 

修改器 

 

 


 

 

搜索器  

 

 

使用方法    

 // $query  第一个参数    模型对象

// $value   第二个参数    搜索数组中该字段对应值  

// $data    第三个 参数    搜索的数组 

设置   

 

 

使用 

 


 

 

实战代码 

简单搜索 效果 代码  

前台页面 

 

后台代码  

 

 withSearch(['xm' , 'sex' ], $get )

 搜索的使用方法

 文本的取值 姓名的条件 

 单选框的  性别的 条件 

 年龄范围的取值 ,  值对不上用data 

 复选框的 取值  值能对上  用value  

 

 


 

 

 


 

 

1.关联表

1 :  1

 

方法步骤 

 

关联完成 

 

 案例 创建 模型  1 

 创建 模型  2   方法名 随便写  profile()  abc ()  都可以 

 

控制器 

 

注意 : 

 

 可以修改数据 

 

--------------------------------------------------

 

 

查询:

 

 

 


 

1 : 多 

 

新增  

 

与载入  

 

 


 

 

多对多  

 

 

 

使用方法

 

 

多对多的数据添加  

 

posted @ 2024-11-07 14:11  我在春天等伱  阅读(464)  评论(0)    收藏  举报