模型是专门用来和数据库打交道的 PHP 类。

    创建模型类

    dayrui/App/Test/Models/My.php

    1. <?php namespace Phpcmf\Model;
    2.  
    3. class My extends \Phpcmf\Model
    4. {
    5. function my_test() {
    6. return '模型类方法输出';
    7. }
    8. }

    请注意文件和类名的命名格式:文件首字母必须大写,类名首字母必须大写。

    模型类调用方式

    1. \Phpcmf\Service::M('类文件名', 'APP目录名')->方法(参数)
    2. 例如:
    3. \Phpcmf\Service::M('my', 'test')->my_test();

    数据库对象用法

    数据库对象调用方法

    1. $this->db;

    运行查询语句

    1. $rt = $this->db->query("你的查询语句");

    可参考手册:http://help.phpcmf.net/419.html

    模型类数据操纵用法

    一、组装方法

    用于构造数据操作的条件方法,全部组装方法都返回数据对象,支持链式写法

    1、设置数据表

    1. $this->table("member") 解析为dr_member

    2、设置当前站点的数据表

    1. $this->table_site("news", 1) 解析为dr_1_news

    3、设置where条件

    1. $this->where("直接写条件");
    2. $this->where("字段", "值");

    4、设置where_in条件

    1. $this->where_in("字段", "值");

    5、设置排序条件

    1. $this->order_by("字段", "值");

    6、设置表自增主键,默认id

    1. $this->id("字段", "值");

    二、查询方法

    1、查询SQL语句

    1. $rt = $this->query(SQL)

    数据返回:

    1. $rt['code']:1成功,0失败
    2. $rt['msg']:失败原因

    2、查询全部数据

    1. $this->组装方法->getAll($num, $key)
    参数介绍
    $num默认为全部表,本次查询的数据量
    $key默认为0,本次查询按哪个字段作为数值主键,主键由0开始;如果填写id,那么主键就是id

    数据返回:多维数组类型

    用法举例:

    1. $this->table("member")->getAll(); // 全部会员数据
    2. $this->table("member")->where("money>0")->getAll(); // 金额大于0的会员数据

    3、按条件查询单个数据

    1. $this->组装方法->getRow()

    数据返回:一维数组类型

    用法举例:

    1. $this->table("member")->where("username", "admin")->getRow(); // 账号是admin的会员数据

    4、按主键查询单个数据

    1. $this->组装方法->get($id)

    数据返回:一维数组类型

    用法举例:

    1. $this->table("member")->id('uid')->get(1); // uid=1的会员数据
    2. $this->table_site("news")->get(1); // id=1的新闻主表内容

    5、统计数据

    1. $this->组装方法->counts("表名称")

    数据返回:数字

    用法举例:

    1. \Phpcmf\Service::M()->where("catid", 1)->counts("1_news") 查询栏目id=1的新闻
    2. \Phpcmf\Service::M()->counts("1_news") 全部新闻数据量

    三、插入方法

    1. $this->table("表名称")->id("主键字段")->insert(数据数组)
    2. 或者
    3. $this->table("表名称")->id("主键字段")->replace(数据数组)
    参数介绍
    表名称例如member
    主键字段默认是id,就是表的自增字段
    数据数组数组格式,例如: array("字段名称" => "值", ….)

    数据返回:

    1. $rt['code']:0失败;大于0,表示本条数据的主键值,自增值
    2. $rt['msg']:失败原因

    用法举例:

    1. $rt = $this->table("test")->id("id")->insert([
    2. "title" => "标题字段",
    3. "content" => "内容字段",
    4. ]);
    5. if($rt['code']) {
    6. // 成功
    7. } else {
    8. // 失败
    9. }

    四、更新方法

    1. $this->table("表名称")->id("主键字段")->update($id, 数据数组)
    参数介绍
    表名称例如member
    主键字段默认是id,就是表的自增字段
    $id主键字段的值
    数据数组数组格式,例如: array("字段名称" => "值", ….)

    数据返回:

    1. $rt['code']:0失败;大于0,表示本条数据的主键值,自增值
    2. $rt['msg']:失败原因

    用法举例:

    1. $rt = $this->table("test")->id("id")->update(1, [
    2. "title" => "标题字段",
    3. "content" => "内容字段",
    4. ]);
    5. if($rt['code']) {
    6. // 成功
    7. } else {
    8. // 失败
    9. }

    五、删除方法

    1. $this->table("表名称")->组装方法->id("主键字段")->delete($id)
    参数介绍
    表名称例如member
    主键字段可选, 默认是id,就是表的自增字段
    $id可选, 主键字段的值 可选

    数据返回:

    1. $rt['code']:0失败;1成功
    2. $rt['msg']:失败原因

    用法举例:

    1. $rt = $this->table("test")->id("id")->delete(1); 删除id=1的记录
    2. $rt = $this->table("test")->where("cid", 2)->delete(); 删除cid=2的记录

    文档最后更新时间:2017-09-27 07:55:03