zoukankan      html  css  js  c++  java
  • phpcms v9二次开发之数据模型类

    系统模型类: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);
    	}
    ...
    }
    这样我们就建立好了一个球队模块的数据模型类。 
  • 相关阅读:
    stenciljs 学习四 组件装饰器
    stenciljs 学习三 组件生命周期
    stenciljs 学习二 pwa 简单应用开发
    stenciljs ionic 团队开发的方便web 组件框架
    stenciljs 学习一 web 组件开发
    使用npm init快速创建web 应用
    adnanh webhook 框架 hook rule
    adnanh webhook 框架 hook 定义
    adnanh webhook 框架request values 说明
    adnanh webhook 框架execute-command 以及参数传递处理
  • 原文地址:https://www.cnblogs.com/semcoding/p/3358801.html
Copyright © 2011-2022 走看看