迅睿CMS数据模型数据操作教程:简单易懂的指导,助您轻松操作数据模型

2023-07-08 / # 迅睿cms教程 / 0

模型是专门用来和数据库打交道的 PHP 类。以下是使用 XunRuiCMS 的数据模型进行数据操作的解决教程:


创建模型类:

在 `dayrui/App/Test/Models/` 目录下创建 `My.php` 文件,并添加以下代码:

<?php namespace Phpcmf\Model;
class My extends \Phpcmf\Model
{
    public function my_test()
    {
        return '模型类方法输出';
    }
}

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

模型类调用方式:

\Phpcmf\Service::M('类文件名', 'APP目录名')->方法(参数)


例如:

\Phpcmf\Service::M('my', 'test')->my_test();


数据库对象调用方法:

$this->db; // 这个写法只能在模型文件中写
\Phpcmf\Service::M()->db; // 这个可以任意地方写


运行查询语句:

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


模型类数据操纵用法:

一、组装方法:

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


1、设置数据表:

$this->table("member"); // 解析为 dr_member 表


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

$this->table_site("news", 1); // 解析为 dr_1_news 表


3、设置 where 条件:

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


4、设置 where_in 条件:

$this->where_in("字段", "数组值");


5、设置排序条件:

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


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

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


二、查询方法:


1、查询 SQL 语句:

$rt = $this->query(SQL);


数据返回:

- `$rt['code']`:1 表示成功,0 表示失败
- `$rt['msg']`:失败原因


2、查询全部数据:

$this->组装方法->getAll($num, $key);


参数:

- `$num`:默认为全部表,本次查询的数据量
- `$key`:默认为 0,本次查询按哪个字段作为数值主键,主键由 0 开始;如果填写 id,那么主键就是 id


数据返回:多维数组类型


用法举例:

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


3、按条件查询单个数据:

$this->组装方法->getRow();


数据返回:一维数组类型

用法举例:

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


4、按主键查询单个数据:

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


数据返回:一维数组类型


用法举例:

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


5、统计数据:

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


数据返回:数字

用法举例:

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


三、插入方法:

$this->table("表名称")->id("主键字段")->insert(数据数组);


或者

$this->table("表名称")->id("主键字段")->replace(数据数组);

参数:


- 表名称:例如 member

- 主键字段:默认是 id,即表的自增字段

- 数据数组:数组格式,例如:`array("字段名称" => "值", ....)`


数据返回:

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


用法举例:

$rt = $this->table("test")->id("id")->insert([
    "title" => "标题字段",
    "content" => "内容字段",
]);
if ($rt['code']) {
    // 成功
} else {
    // 失败
}


四、更新方法:

$this->table("表名称")->id("主键字段")->update($id, 数据数组);


参数:

- 表名称:例如 member

- 主键字段:默认是 id,即表的自增字段

- `$id`:主键字段的值

- 数据数组:数组格式,例如:`array("字段名称" => "值", ....)`


数据返回:

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


用法举例:

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


五、删除方法:

$this->table("表名称")->组装方法->id("主键字段")->delete($id);


参数:


- 表名称:例如 member

- 主键字段:可选,默认是 id,即表的自增字段

- `$id`:可选,主键字段的值


数据返回:

- `$rt['code']`:0 表示失败,大于 0 表示成功
- `$rt['msg']`:失败原因


用法举例:

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


以上就是使用 XunRuiCMS 数据模型进行数据操作的解决教程。