系统模型类:model.class.php
数据模型类的位置:/phpcms/libs/classes

phpcms v9二次开发中,我们要经常需要对模块的数据表进行查询、添加、修改和删除数据等操作,所有这些操作都离不开数据模型类model.class.php,它起到开发者与数据表的交互作用。model.class.php里面封装了许多数据表操作的方法,基本上常用的mysql操作语句都能从中找到,但是它又和原生态的mysql语句有所不同,和其它php内容管理系统一样,phpcms也对原生态的mysql语句进行封装简化,以使它操作起更加方便,为开发者省去了不少麻烦。具体我们来看一下model.class.php代码片断:

<?php

defined('in_phpcms') or exit('no permission resources.');

pc_base::load_sys_class('model', '', 0);//加载加载系统模型类model.class.php
class football_model extends model {//球队模型类football_model.class.php继承系统模型类model.class.php
public $table_name;//声明一个数据表变量
public function __construct() {//初始化球队模型类的构造函数 $this->db_config = pc_base::load_config('database');//加载数据库配置文件database.php $this->db_setting = 'default';//为数据库配置文件中配置数据库链接池名称,默认为default $this->table_name = 'fbteam';//'fbteam'为球队数据表的名称 parent::__construct();//调用父类model.class.php的构造函数,以获取父类的属性方法 } } ?>

如上面的 select语,和mysql的select()有所不同,只要传入相关参数就可以实现mysql要用很多语句才能实现的功能。更多请看model.class.php。

模块模型类:数据表名称+'_model.class.php'
模块模型类的位置:phpcms/model/

在调用model.class.php里面的方法时,需要先把它实例化。每个模型对应一张数据表,每张数据表对应一个模块模型类。现在我们来建一个球队的模块模型表'fbteam',那么它对应的模型类为football_model.class.php,完整代码如下:

<?php
pc_base::load_sys_class('db_factory', '', 0);
class model { ... public function __construct() {
if (!isset($this->db_config[$this->db_setting])) {
$this->db_setting = 'default';
}
$this->table_name = $this->db_config[$this->db_setting]['tablepre'].$this->table_name;
$this->db_tablepre = $this->db_config[$this->db_setting]['tablepre'];
$this->db = db_factory::get_instance($this->db_config)->get_database($this->db_setting);
} /**
* 执行sql查询
* @param $where 查询条件[例`name`='$name']
* @param $data 需要查询的字段值[例`name`,`gender`,`birthday`]
* @param $limit 返回结果范围[例:10或10,10 默认为空]
* @param $order 排序方式 [默认按数据库默认方式排序]
* @param $group 分组方式 [默认为空]
* @param $key 返回数组按键名排序
* <a class="referer" href="http://my.oschina.net/u/556800" target=_blank>@return</a> array 查询结果集数组
*/
final public function select($where = '', $data = '*', $limit = '', $order = '', $group = '', $key='') {
if (is_array($where)) $where = $this->sqls($where);
return $this->db->select($data, $this->table_name, $where, $limit, $order, $group, $key);
}
...
}

这样我们就建立好了一个球队模块的数据模型类。

最新文章

  1. cURL函数
  2. java 极光推送
  3. Matlab2014a 提示未找到支持的编译器或 SDK的解决方法
  4. [FJSC2014]滑行
  5. 轻量级工具网站SimpleTools
  6. Android学习笔记之Service
  7. IDoc 基础知识
  8. AngularJS之备忘与诀窍
  9. python中的向上取整向下取整以及四舍五入的方法
  10. Java中对Array数组的常用操作
  11. c/c++ 多态的实现原理分析
  12. python GIL :全局解释器
  13. STL之双向队列(dequeue)
  14. Macaca 基础原理浅析
  15. Svn 提示错误:previous operation has not finished 解决方案
  16. CodeForces - 669D——(思维题)
  17. 爬虫--selenium
  18. Visula Studio 2013 初始化静态浮点型数据在C++类内
  19. Openstack 网络服务 Neutron介绍和控制节点部署 (十)
  20. shell 语法

热门文章

  1. 查看Linux某个进程打开的文件句柄(file descriptor)数量
  2. linux crontab 计划任务 atd和windows下的计划任务
  3. (转)C++ 编程规范
  4. 【转】(DT系列六)devicetree中数据和 struct device有什么关系
  5. 【二分】XMU 1587 中位数
  6. Visual Studio Code 与 Github 集成
  7. 《Linear Algebra and Its Applications》-chaper2-矩阵代数-分块矩阵
  8. pip常用命令
  9. @RestController
  10. nc命令