|
|
MVC开发思想Modle:模型
View:视图(模板)
Contriller:控制器(流程控制,比如获取get值,post值,判断当前用户是否登录等等)
内置模型目录:
产品跟目录/source/class/table/table_xxx.php这个xxx在数据库中就是表名
这个目录下有239个文件,与数据库中有250个表,是一一对应关系的239个文件和250个表的数量不一样是因为数据库中有些数据表做了分表
如图
在文件夹中的文件名叫:table_common_admincp_cmenu.php
在数据库中的表明叫:pre_common_admincp_cmenu
每一个表的内容及意义可以查阅数据库字典
http://faq.comsenz.com/library/database/x3/x3_index.htm
插件模型目录:
产品根目录/source/plugin/插件目录/table/table_xxx.php
模型调用方法
内置模型调用
C::t('模型类名')->模型方法()
类名与文件名是保持一致的,而且要继承discuz_table类
格式代码:
- <?php
- $data = C::t('common_credit_rule')->fetch_all_by_action('reply');
- debug($data);
复制代码 关系理解流程图:
- if(!defined('IN_DISCUZ')) {
- exit('Access Denied');
- }
复制代码 上面这句的作用是:防止用户直接跳过主程序,而直接执行
插件模型调用
C::t('#插件标识符#模型类名')->模型方法()
关系理解流程图:
$this->_table = 'test_db'; 表示数据表名称,去掉了表前缀pre_
$this->_pk = 'id';表示数据表主键名称
$this->_pre_cache_key = 'test_db_';数据缓存key前缀,格式是表明加下划线_
模型类名:test_db 去掉了前面的table_前缀
模型基类CURD(增删改查)的快捷使用方法
| 方法名 | 方法作用 | | insert() | 插入数据 | | delete() | 删除数据 | | update() | 更新数据 | | fetch() | 根据主键值查询数据 | | fetch_all() | 根据主键值查询数据组 | | range() | 查询指定范围的数据 | | count() | 计算数据表数据总数 |
到第28分钟
discuz_table.php 中 的insert方法:
- public function insert($data, $return_insert_id = false, $replace = false, $silent = false) {
- return DB::insert($this->_table, $data, $return_insert_id, $replace, $silent);
- }
复制代码 所以可以再自己的数据表类文件中可以自定义写这样的方法:
- public function add_name($name) {
- $this->insert(array(
- 'name' => $name,
- ));
- }
复制代码 在INC文件中.
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|