1.实例化基础模型(Model)类
在没有定义任何模型的时候,可以使用下面的方法实例化一个模型类
来进行操作
$User = new Model('User');
$User->select(); // 进行其他的数据操作
或者使用M快捷方法进行实例化,其效果是相同的。
$User = M('User');
$User->select(); // 进行其他的数据操作
2.实例化其他模型类
第一种方式实例化因为没有模型类的定义,因此很难封装一些额外的逻辑方
法,不过大多数情况下,也许只是需要扩展一些通用的逻辑,那么就可以尝试下
面一种方法。
M方法默认是实例化Model类,如果需要实例化其他模型类,可以使用:
$User = M('User', 'CommonModel');
上面的方法等效于:
$User = new CommonModel('User');
因为系统的模型类都能够自动加载,因此不需要在实例化之前手动进行类库
导入操作。模型类commonModel必须继承Model,如果没有定义别名导入的话
,需要放在项目Model下。我们可以在CommonModel类里面定义一些通用的
逻辑方法,就可以省去为每个数据表定义具体的模型类,如果项目的数据表超过
100个,而且大多数都是执行基本的CURD操作,只是个别模型有一些复杂的业
务逻辑需要封装,那么第一种方式和第二种方式的结合是一个不错的选择。
3.实例化用户定义的模型(×××Model)类
概述:这种情况是使用的最多的,一个项目不可避免的需要定义自身的业务逻辑
实现,就需要针对每个数据表定义一个模型类,例如UserModel、InfoModel等
等。
存放位置:定义的模型类通常都是放到项目的Lib\Model目录下面。例如:
class UserModel extends Model{
Public function myfun(){
// 添加自己的业务逻辑
// ………
}
}
延伸:模型类还可以继承一个用户自定义的公共模型类,而不是只能继承Model类
实例化自定义模型类的方式:
第一种:
$User = new UserModel();
$User->select(); // 进行其他的数据操作
第二种:使用D快捷方式进行实例化
$User = D('User');
$User->select(); // 进行其他的数据操作
关于使用D快捷方式进行实例化的说明:
D方法可以自动检测模型类,不存在时系统会抛出异常,同时对于已实例化
过的模型,不会重复去实例化。
默认的D方法只能支持调用当前项目的模型,如果需要跨项目调用
,需要使用:
$User = D('User', 'Admin'); // 实例化Admin项目下面的User模型
$User->select();
如果启用模块分组功能,还可以使用:
$User = D('Admin.User');
4.实例化空模型类
如果仅仅是使用原生SQL查询的话,不需要使用额外的模型类,实例化一个
空模型类即可进行操作,例如:
$Model = new Model();
// 或者使用M快捷方法实例化是等效的
// $Model = M();
$Model->query('SELECT * FROM think_user where status=1');
空模型类也支持跨项目调用。
ThinkPHP利用PHP 5的魔术方法机制来实现属性的直接访问。这也是
最常用的访问方式,通过数据对象访问,例如:
<?php
$User = new Model('User');
$User->find(1);
echo $User->name; // 获取name属性的值
$User->name = 'ThinkPHP'; // 设置name属性的值
?>
还有一种属性的操作方式是通过返回数组的方式,例如:
<?php
$Type = D('Type'); // 注意这里返回的type数据是一个数组
$type = $Type->find(1);
echo $type['name']; // 获取type属性的值
$type['name'] = 'ThinkPHP'; // 设置type属性的值
?>
分享到:
相关推荐
1. **简洁高效**:ThinkPHP 的核心设计目标之一就是“0 配置”,遵循“约定优于配置”的理念。 2. **面向对象**:采用面向对象的开发模式,具有高度的可扩展性和灵活性。 3. **模块化设计**:支持模块化开发,便于...
【基于ThinkPHP5 三层分销】的系统设计与实现是一个深度涵盖Web...通过阅读和学习这些代码,可以深入了解如何在实际项目中应用ThinkPHP5框架来实现三层分销系统,同时也可以掌握如何设计和实现一个高效的Web分销平台。
在PHP开发领域,ThinkPHP是一个广泛应用的开源框架,它提供了丰富的功能和优秀的性能,使得开发者能够快速构建Web...通过学习和实践,开发者不仅能掌握ThinkPHP的插件集成技术,也能更好地理解和运用开源社区的力量。
在深入探讨ThinkPHP3.1.2学习笔记之前,让我们先了解一下ThinkPHP框架。ThinkPHP是一个基于MVC(Model-View-Controller)模式的简洁、轻量级的PHP开发框架,它强调代码运行效率和开发速度,适用于中小型企业的Web...
### ThinkPHP学习要点 #### 一、框架的意义 1. **减少重复劳动**:通过使用框架,开发者可以避免从头开始编写基础代码,这有助于节省时间,并将精力集中在业务逻辑上。 2. **便于团队协作**:框架提供了一套统一的...
在IT行业中,尤其是在Web开发领域,常常需要处理地理信息,如城市、地区等。...对于学习Thinkphp框架和Web开发的初学者来说,这是一个很好的实践案例,可以帮助他们理解如何处理层次化数据和实现动态交互效果。
《ThinkPHP5学习资源》 ThinkPHP5是PHP开发领域中广泛应用的一个轻量级的框架,以其简洁、高效的特性深受开发者喜爱。对于初学者来说,掌握ThinkPHP5能快速提升Web应用开发的能力,同时也能更好地理解和实践MVC...
【基于ThinkPHP框架开发的三级分销投资理财系统PHP源码】是一个使用PHP编程语言和ThinkPHP框架构建的投资理财平台,其核心功能是实现三级分销模式,即用户可以通过邀请他人加入并根据邀请关系形成一个三级的分销网络...
在这个主题中,我们将深入探讨如何在ThinkPHP项目中实现与各大第三方平台的登录接口对接,包括腾讯QQ、腾讯微博、新浪微博、网易微博、人人网、360、豆瓣、Github、Google、MSN、点点、淘宝网、百度、开心网和搜狐。...
### ThinkPHP 学习文档知识点总结 #### 一、基础 **1.1 简介** - **ThinkPHP** 是一个在中国非常流行的轻量级、面向对象的PHP框架,它于2006年开始发展。 - **架构**: 基于MVC (Model-View-Controller)模式设计,...
通过学习这个项目,开发者可以掌握OAuth协议的基本用法,了解如何与各大社交平台进行API对接,以及如何在自己的应用中整合第三方登录,提升用户体验。同时,也要注意在实现过程中遵循最佳实践,确保系统的稳定性和...
同时,ThinkPHP5支持Smarty等第三方模板引擎,提供更多的选择。 在ThinkPHP5中,错误处理和日志记录非常重要。框架提供了统一的异常处理机制,可以帮助开发者快速定位和解决问题。日志记录功能则能保存程序运行中的...
总结,"thinkphp完整源码.rar"是学习和研究ThinkPHP框架的宝贵资源,通过对源码的深入理解和实践,开发者不仅可以掌握框架的使用,还能提升自己的编程技巧和架构设计能力。在实际开发中,结合框架的灵活性和强大功能...
《ThinkPHP 3.1.3后盾网视频学习代码详解》 ThinkPHP是一个轻量级的PHP开发框架,以其简洁、高效的特性受到广大开发者喜爱。3.1.3是其较早的一个版本,虽然现在已有更先进的版本,但3.1.3仍然是许多初学者入门和...
在开发Web应用时,我们经常需要处理地理位置信息,如省份、城市、区县的数据,这时一个高效的省市区三级联动功能就显得尤为重要...通过学习和实践,你可以更好地理解和掌握ThinkPHP框架,同时提升你的Web应用开发能力。
《基于ThinkPHP5的多用户商城系统与三级分销模式解析》 在当今互联网时代,电商平台已经成为商业运营的重要组成部分。尤其在移动互联网的推动下,微信商城作为一种便捷的购物方式,深受消费者喜爱。本文将深入探讨...
总的来说,这个项目为学习ThinkPHP5提供了实践机会,涵盖了框架的基本使用,如路由、控制器、视图和模型的创建,以及如何整合第三方库和数据库操作。通过这个项目,开发者可以深入理解MVC模式,学习如何构建一个简单...
同时,对于学习ThinkPHP6框架和电商系统开发的开发者,也是很好的学习资料。 总结,"thinkphp6境外商城源码"是一个集成了丰富功能、响应式布局的电商解决方案。结合ThinkPHP6的优秀特性,它为开发者提供了高效且...
五、学习与进阶 对于初学者,可以先从官方文档入手,了解基本的MVC概念和框架结构。随着经验积累,可以深入研究路由、模型、控制器的高级用法,以及如何利用Composer管理和集成第三方库。对于高级开发者,ThinkPHP...