六、ThinkPHP模型操作

1、模型的定义

//在控制台中输入如下代码
php think make::mode 模块名(首字母大写)

//指定主键
protected $pk = 'id';
//指定数据表
protected $table = 'tp_user' //此次需要写完整表名

//实例化model的两种方式
//例如实例化student.php模块,假设此模块存在于common文件夹
use app\common\model\student;
$model = new student();$model = model('student'); 

2、添加数据

假设存在一个student.php的model,以下操作均基于该model

//添加一条数据
//假设接受到一个$data的数据
$data = array(
	'id' => 1,
	'name' => '小明',
	'age' => 22,
);
//方法1:
$model = new student();
$model -> save($data);
//使用allowField函数可以控制存入的字段
$mode -> allowField(['id','name']) -> save($data); //只存入id和name

//方法2:
student::creat($data);

//添加多条数据
$data = [
	['id' => 1,'name' => 'xioaming','age' => 18];
	['id' => 2,'name' => 'xioawang','age' => 19];
	['id' => 3,'name' => 'xioagang','age' => 20];
]
$model -> saveAll($data);

3、修改数据

使用格式为student::where('条件') -> updata(‘数据’)
例如:

$data = ['id' => 1,'name' => 'xiaoming','age' => 18]
student::where('id','=','1') -> updata($data);

4、删除数据

//方法1
$man = student::find(1);
$man -> destory();
//方法2
student::destory([1,2,3]);

5、软删除

概念见上篇文章

class Student extend Model{
	use SoftDelete;
	//指定软删除标记字段
	protected $deleteTime = 'delete_time';
}

//软删除
Student::destory(1);
//真删除
Student::destory(1,true);

//查询时包含被软删除的数据
Student::withTrashed() -> find();
Student::withTrashed() -> select();

//查询只有被软删除的数据
Student::onlyTrashed() -> find();
Student::onlyTrashed() -> select();

//恢复软删除的数据
$man = Student::onlyTrashed -> find(2333);
$man -> restore();

6、查询数据

//查询单条记录
Student::where('name','xiaoming') -> find();
//查询多条记录
Student::where('id','>',3) -> limit(3) -> order('id','desc') -> select();
//获取某个字段的值
Student::where('id',1) -> value('name');
//获取某个列的值
Student::where('id','>',1) -> column('name');

//条件分组
$result = Student::where(function(Query $query){
	$query -> where('id','>',100);
}) -> whereOr(function(Query $query){
	$query -> where('age','>',18);
}) -> select();

//动态查询
//也就是把字段写在方法之中
$result = Student::getById(1);

//获取器(对数据进行自动处理)写在model类中
//例如将student表中的name转为大写
public function getNameAttr($value){
	return strtoupper($value);
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ThinkPHP6 的模型运行机制主要是基于 ORM(对象关系映射)思想实现的,它将数据库中的数据表映射为一个个的模型类,通过模型类的方法来操作数据库中的数据,避免了直接操作数据库的复杂性,提高了代码的可维护性和可读性。 具体来说,ThinkPHP6 的模型运行机制包括以下几个方面: 1. 数据库连接:在模型类中,通过继承 \think\Model 类来实现数据库连接,可以在模型类中通过 $this->db() 方法来获取当前模型对应的数据库连接实例。 2. 数据表映射:在模型类中,通过定义 $table 属性来指定当前模型对应的数据表名称,也可以通过 $pk 属性来指定当前模型对应的数据表主键字段名称。 3. 查询构建器:在模型类中,通过 $this->db() 方法返回的数据表查询构建器对象来实现对数据表的各种操作,如查询、更新、删除等。 4. 数据关联:在模型类中,可以通过定义关联方法来实现不同数据表之间的关联,如一对一关联、一对多关联、多对多关联等。 5. 事件机制:在模型类中,可以通过定义事件方法来实现对模型操作的监听,如 beforeInsert、afterInsert、beforeUpdate、afterUpdate、beforeDelete、afterDelete 等事件。 总之,ThinkPHP6 的模型运行机制非常灵活,可以通过模型类来实现对数据表的各种操作,并且支持数据关联和事件机制,方便开发者进行快速开发。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值