使用自定义模型,通常情况下也是需要与数据库的真实表名进行映射,这是MVC的一条规范,否则模型就与普通的功能类无异。在调用时,系统提供了D函数,用于快速实例化自定义模型。使用自定义模型之后,在进行数据表操作时就更加灵活。自定义模型的最大特点是代码容易移植,高度重用。......
2023-11-04
模型本质上是一个实例类,该类封装了操作数据库的常见方法,模型一旦被实例化,意味着开始链接数据库。前面已经介绍过,ThinkPHP不强制自定义模型与数据表进行映射,开发人员完全可以当成一个普通的类文件来使用,所以使用new方式也是没任何问题的。为了简单操作,ThinkPHP还提供了3种方式快速实例化模型,如下所示。
➢new Model(‘数据表名’),使用传统的new方式实例化Model基类,该类封装了操作数据库的常见方法。需要注意的是new方式不能实例化自定义的模型。
➢M(name='',class='Model'),快捷函数实例化模型。参数name表示数据表名称,class表示自定模型类。M函数可以在初始化数据表后再实例化一个自定义的模型类。
➢D(name='',app=''),D函数专门用于实例化自定义模型,参数name表示模型名(不需
要Model.class.php);app表示项目名称,如果调用跨项目的自定义模型,那么该参数
是必需的,为空时则表示当前项目。(www.chuimin.cn)
关于怎样使用Model基类进行数据库操作,在本书第7章将有深入的介绍,在此读者只需要理解该类的作用即可。继续以前面的内容为例,如果现在需要实例化UserModel类,那么正确的实例化方式如以下代码所示。
M函数同样可以实例化自定义模型,但该函数必须先初始化数据库,然后才能实例化自定义模型类,如以下代码所示。
M函数可以方便地进行数据库操作。利用自定义模型能够实现更复杂的数据库操作。M函数的第1个参数表示数据表名,不能为空;第2个参数为自定义模型类,如果载入自定义模型,该模型类必须位于当前项目。
提示:ThinkPHP框架使用的是单入口文件方式,并且强制使用类文件自动载入机制,所以在所有的MVC开发中均不需要开发者手动引入类文件。
有关PHP MVC开发实战的文章
使用自定义模型,通常情况下也是需要与数据库的真实表名进行映射,这是MVC的一条规范,否则模型就与普通的功能类无异。在调用时,系统提供了D函数,用于快速实例化自定义模型。使用自定义模型之后,在进行数据表操作时就更加灵活。自定义模型的最大特点是代码容易移植,高度重用。......
2023-11-04
ThinkPHP的基础模型类名为Model,该类定义了操作数据库的常用方法,继承于Model类的PHP类称为自定义模型。ThinkPHP对模型的定义不太严格,对中小型的团队开发而言,这种MVC处理方式是高效和灵活的,开发人员可以像使用PHP普通类一样调用模型,下面将介绍怎样创建一个正确的自定义模型类。在home/Lib/Model目录下创建一个PHP文件,并命名为UserModel.class.php,打开该文件,创建一个PHP类,命名为UserModel,并使该类继承于Model类。这样,UserModel.class.php就是一个标准的ThinkPHP项目模型文件。......
2023-11-04
CodeIgniter简称CI,是国内使用最广泛的PHP MVC框架之一。CodeIgniter从MVC入口文件到框架核心代码,均经过严谨的设计。CodeIgniter定位于小型的网站应用开发,但并不代表CodeIgniter不适用于大型网站开发。CodeIgniter MVC处理流程如图4-19所示。CodeIgniter灵活高效的MVC处理机制,无论在国内还是国外都得到了广泛的PHP程序员支持。接下来将以CodeIgniter 2.1.2为基础,介绍CodeIgniter的MVC处理流程,让读者对CodeIgniter有一个更加直观的认识。......
2023-11-04
图6-4 网站布局ThinkPHP 3.0之前的模板引擎没有布局的概念,但开发人员可以使用include包含文件达到网站布局的效果。布局文件允许嵌套,如果网站页面更加复杂,还可以结合include等标签实现开发需求。另外,如果不需要全局布局,也可以单独在当前页面中使用布局文件,只需要在当前页面头部加上
2023-11-04
PHP 5后的版本借鉴了大量Java思想,得益于早期PHP面向过程编程支持,PHP在实现MVC设计中变得较灵活、易用。但是随着PHP 5.x的到来,各种MVC框架的出现,尤其Zend推出的Zend Framework,彻底地改变了PHP状况,使得PHP也能够实现优雅的Web编程。MVC设计模式将使代码将变得简洁。但是在MVC设计模式中,Index称为动作。当然,MVC只是一种设计模式,在开源的PHP编程世界中,已经拥有众多的MVC编程框架。......
2023-11-04
接下来将以HAS_ONE、BELONGS_TO、HAS_MANY这3种最常见的关联模型类型作为讲解对象,深入浅出地介绍关联模型的CURD实际应用。关联查询可以使用所有Model基础模型的CURD操作方法,例如find、delete等。HAS_MANY是关联模型中最常用的操作,HAS_MANY的使用非常简单,和HAS_ONE相比,只需要修改其中的关系类型即可,其他的元素几乎不用修改。......
2023-11-04
前面已经简单介绍过ThinkPHP视图引擎,这些标签处理机制类似于JSP tag,使用XML作为标签的渲染方式,开发人员可以方便地在网页中嵌入XML标签,然后由ThinkPHP视图引擎解释成标准的PHP代码。ThinkPHP的视图引擎之所以高效,主要体现在它的标签扩展性。ThinkPHP的视图标签扩展性够完美地与后台控制器代码相结合,例如在Smarty中使用函数功能,首先需要在后台PHP代码注册,而在ThinkPHP中完全不需要,如以下代码所示。......
2023-11-04
在模型与表映射过程中,系统会智能地根据配置信息处理好模型名与表名之间的关系。例如上述代码中的User表名,事实上数据库中并不存在User表,但是系统会根据配置信息DB_PREFIX指定的数据表名前缀智能地添加到模型中,因为User首字母为大写,系统会强制给User添加表前缀,最终的表名称为tpk_user。模型映射不仅能够智能地添加表前缀,还可以添加表后缀。假设数据表名为tp_user_local,那么在模型映射时只需将表名与后缀名首字母改成大写即可。......
2023-11-04
相关推荐