ORM(Object Relation Mapping) 对象关系映射
-
用来把对象模型表示的对象,映射到基于S Q L 的关系模型数据库结构中去。
-
这样,我们在具体的操作实体对象的时候,就不需要再去和复杂的 SQ L 语句打交道,只需简单的操作实体对象的属性和方法。
-
O R M 技术是在对象和关系之间提供了一条桥梁,前台的对象型数据和数据库中的关系型的数据通过这个桥梁来相互转化 。
总结
总而言之,就是ORM能让我们把数据表当做对象去操作。
模型
-
不单单做数据库查询,还可以包含业务逻辑。
-
主要用来做复杂的业务逻辑。
-
模型和数据库表、对象,不是一对一的关系,可以一对多。
-
返回的是模型对象,而不是数组。
注意:
5.1+版本,value和column方法返回的不再是一个模型对象实例,而是纯粹的值或者某个列的数组。
使用步骤
-
同模块下建立model文件夹;
-
model文件夹下建立和表名字一样的model类文件
假设表名称是user,则文件名为User.php,类名为User。 -
model类继承think\Model;
-
controller里调用model类,调用类的内置或自定义方法
CURD操作
1. 插入
User::create(['name' => '张三']);
2. 更新
User::where('id', 1)
->update(['name' => 'thinkphp']);
3. 删除
1)delete()删除当前模型数据
// 先查询,再删除
$user = User::get(1);
$user->delete();
// 条件删除
User::where('id','>',10)->delete();
2)destory() 直接删除数据
// 根据主键删除
User::destroy(1);
// 支持批量删除多个数据
User::destroy('1,2,3');
// 或者
User::destroy([1,2,3]);
4. 查询
1)根据主键,查询单条记录
User::get(1);
2)根据主键,查询多条记录
User::all('1,2,3');
// 或者
User::all([1,2,3]);
除了以上方式,模型还可以使用查询构造器的方法。
参考资料: