18143453325 在线咨询 在线咨询
18143453325 在线咨询
所在位置: 首页 > 营销资讯 > 网站运营 > ThinkPHP6 模型基础操作详解

ThinkPHP6 模型基础操作详解

时间:2023-04-21 07:30:01 | 来源:网站运营

时间:2023-04-21 07:30:01 来源:网站运营

ThinkPHP6 模型基础操作详解:

ThinkPHP6 模型

一、创建模型

表前缀设置:config/database.php 文件里 prefix

二、模型操作

在模型中除了可以调用数据库类的方法之外(换句话说,数据库的所有查询构造器方法模型中都可以支持),可以定义自己的方法,所以也可以把模型看成是数据库的增强版

1、find查询数据

namespace app/model;use think/Model;class Goods extends Model{ public function find(){ $find = Goods::where('id',7)->find(); return $find; }}

2、controller怎么调用model

namespace app/controller;use app/model/Goods;class Index{ public function index(){ $db = new Goods(); $index = $db->find(); print_r($index); }}
find(主键id) 查询,只使用数据表主键为id的使用,主键非id会查询失败

3、select查询数据

public function select(){ $select = Goods::select(); $select = Goods::select(6); $select = Goods::where('id','>',7)->select(); return $select;}

4、数据转换

public function select(){ $select = Goods::select(); $select = Goods::select(6); $select = Goods::where('id','>',7)->select(); return $select->toArray();}

5、增加数据

public function create(){ $create = Goods::create([ 'cat' => 3, 'title' => '新商品', 'price' => '59.99', 'add_time' => time() ]); echo $create->id; // 可以直接获取自增id return $create;}
新增数据的最佳实践原则:使用create方法新增数据,使用saveAll批量新增数据。

6、修改数据

namespace app/model;use think/Model;class Goods extends Model{ public function update(){ # 更新方式1 $update = Goods::update( ['price'=>'99.99'], ['id'=>22] ); return $update; # 更新方式2 $user = Goods::find(23); $user->price = '102.99'; $save = $user->save(); return $save; }}

7、删除数据

public function delete(){ # 删除方法1 $delete = Goods::where('id',3)->delete(); # 删除方法2 $delete = User::destroy(4); return $delete;}

三、模型设置

1、nametable

class Goods extends Model{ protected $name = 'Admin'; protected $table = 'shop_admin'; public function select(){ $select = Goods::select(); return $select->toArray(); }}

2、pk 改变主键名称

class Goods extends Model{ protected $name = 'Admin'; protected $table = 'shop_admin'; protected $pk = 'uid'; public function find($id=1){ $find = Goods::find($id); return $find->toArray(); }}

3、schema 设置模型对应数据表字段及类型

class Goods extends Model{ protected $name = 'Goods'; protected $table = 'shop_goods'; protected $pk = 'shop_id'; protected $schema = [ 'shop_id' => 'int', 'cat' => 'int', 'title' => 'string', 'price' => 'float', 'discount' => 'int', 'stock' => 'int', 'status' => 'int', 'add_time' => 'int' ]; # 对某个字段定义需要自动转换的类型,可以使用type属性 protected $type = [ 'shop_id' => 'int' ]; public function select(){ $select = Goods::select(); return $select->toArray(); }}

4、disuse 数据表废弃字段(数组)

class Goods extends Model{ protected $name = 'Goods'; protected $table = 'shop_goods'; protected $pk = 'shop_id'; protected $disuse = [ 'discount', 'stock' ]; public function select(){ $select = Goods::select(); return $select->toArray(); }}

四、模型 主要功能

1、获取器

class Goods extends Model{ public function index(){ $find = Goods::find(10); echo $find->status; return $find->toArray(); } public function getStatusAttr($v){ $status = [ 1=>'开启', 2=>'关闭' ]; return $status[$v]; }}

2、修改器

class Goods extends Model{ public function index(){ $create = Goods::create([ 'cat' => 3.33, 'title' => '新商品', 'price' => '59.99', 'add_time' => time() ]); return $create; } public function setCatAttr($v,$all){ // $all 全部参数 return (int)$v; }}

3、搜索器

class Goods extends Model{ public function index(){ $select = Goods::withSearch(['title'],[ 'title' => '新' ])->select(); return $select->toArray(); } public function searchTitleAttr($query,$v){ $query->where('title','like', $v . '%'); }}

4、检查数据

class Goods extends Model{ public function index(){ $select = Goods::where('title','1')->select(); if(empty($select)){ echo 111; } if($select->isEmpty()){ echo 111; } }}视频教程地址:第二十节thinkphp6模型的基础配置



关键词:操作,基础,模型

74
73
25
news

版权所有© 亿企邦 1997-2025 保留一切法律许可权利。

为了最佳展示效果,本站不支持IE9及以下版本的浏览器,建议您使用谷歌Chrome浏览器。 点击下载Chrome浏览器
关闭