极致CMS帮助文档极致CMS帮助文档
首页
论坛
视频
加群
工具
GitHub
首页
论坛
视频
加群
工具
GitHub
  • 引言
  • 条款
  • 起步
  • 基础标签

    • 系统配置
    • 配置栏目
    • 栏目导航
    • 面包屑导航
    • 栏目列表
    • 单页
    • 文章内容页
    • 商品内容页
    • 点击量
    • 点赞
    • 收藏
    • 评论
    • 购买
    • 轮播图/幻灯片
    • 友情链接
    • 网站底部
    • 自定义字段
    • TAG
    • 内链
    • 碎片化
  • LOOP标签

    • 基本用法
    • 分页
    • 空数据
    • tid
    • like
    • notlike
    • limit
    • jzattr
    • day
    • table
    • sql
    • jzcache
    • notjz
  • Screen筛选
  • 功能标签
  • 极致模型函数
  • 自定义路由
  • 相关统计
  • 邮箱配置
  • 多语言支持
  • 搜索模块

    • 单模型搜索
    • 多模型搜索
    • 搜索结果页
  • 留言模块

    • 基本用法
    • 高级用法
    • 搜索结果页
  • 自定义模块
  • 模板制作

    • 准备工作
    • 网站栏目
    • 页面规划
    • 自定义函数
    • 模板信息
    • 客户权限
    • 桌面设置
    • 上线部署
  • 模板列表
  • 插件相关

    • 安装卸载
    • 控制器方法覆盖(简单)
    • 控制器方法钩子(高级)
    • 覆盖Common公共控制器
    • 极致CMS升级插件
    • 系统API接口插件
    • 数据库修复插件
    • 多语言建站
    • 模板助手插件
    • 阿里云短信注册插件
    • 独立静态网站插件
    • 云储存插件
    • Excel导入导出插件
    • 后台登录安全插件
    • 屏蔽IP插件
    • 在线编辑模板插件
    • 生成多尺寸缩略图插件
    • 火车头采集Web发布插件
    • 伪原创插件
    • 留言发送邮箱插件
    • 留言提交安全插件
    • QQ一键登录插件
    • Skycaiji蓝天采集API接口插件
    • 多域名绑定插件
    • 百度SEO推送
    • 百度百家推送
    • 极致插件示例
    • 栏目便捷工具
  • 支付相关

    • 支付宝支付
    • 微信支付
    • 立即支付
    • 接入第三方支付
  • 会员模块

    • 页面模板说明
    • 个人中心
    • 我的资料/修改密码
    • 我的关注
    • 我的粉丝
    • 我的投稿
    • 我的收藏
    • 我的喜欢
    • 我的评论
    • 我的钱包
    • 购买记录
    • 我的购物车
    • 订单管理
    • 消息设置
    • 公开页
    • 会员登录
    • 会员注册
    • 忘记密码
    • 微信登录
  • 微信小程序

    • 开始起步
    • 小程序开发
    • API接口
    • 轮播图/幻灯片
    • 获取栏目信息
    • 获取内容详情
    • 留言交互
  • Windows部署
  • 宝塔一键部署
  • 伪静态配置
  • 系统架构
  • 数据字典
  • 视频教程
  • 版本更新
  • Vue & App接入(v2.5.2+)

    • 验证码
    • 上传文件
    • 会员注册
    • 会员登录
    • 找回密码
    • 获取用户信息
    • 修改用户信息
    • 我的文章
    • 发布文章
    • 删除文章
    • 获取单篇文章信息
    • 我的收藏
    • 收藏/取消收藏
    • 是否收藏
    • 我的点赞
    • 点赞/取消点赞
    • 是否点赞
  • 常见问题

    • 如何判断首页,栏目页,详情页,单页?
    • 如何调用关联和相关文章内容?
    • 搜索超出设定范围如何解决?
    • 判断用户是否购买商品?
    • 判断会员分组?
    • 如何输出内容图片?
    • 如何判断自己是否适合使用极致CMS?
    • ajax数据交互,加载更多功能实现?
    • 如何实现后台录入时自定义检测重复内容的功能?
  • 附录

    • 时间格式
    • 富文本编辑器
    • 二维码生成
    • 验证码生成
    • 自定义后台主页
    • 客户端判断
    • classtypedata数据详解
    • 文章归档
    • RSS
    • 制作内容分页
    • 各种时间查询问题解决
    • 更换编辑器

极致模型函数

可以直接实例化模型,输出对应的数据,有一些数据输出需要写SQL或者说其他讨巧的方式输出。

M 实例化模型函数

M(table_name,prefix)
table_name: 表名称
prefix: 是否需要表前缀,默认1需要,0不需要,不需要的时候一般调用第三方数据 v2.5.4+新增
模型的如何操作都要先使用这个函数进行实例化!

getCount 查询条数

getCount(conditions)
conditions:sql的字符串或者数组
计算基础会员组里面的会员人数

{php echo M('member')->getCount(['gid'=>1]);/}
{php echo M('member')->getCount('gid=1');/}

计算会员发布文章数

{php echo M('article')->getCount(['member_id'=>1]);/}
{php echo M('article')->getCount('member_id=1');/}

计算带有极致字符的标题文章数

{php echo M('article')->getCount("title like '%极致%' ");/}

goInc 递增

goInc($conditions,$field,$vp=1)
conditions: 查询条件,数组或者字符串 field: 递增字段,必须是int或者decimal类型,否则出错!
vp: 递增数值,默认1

访问详情页面,文章点击量递增100

{php M('article')->goInc(['id'=>$jz['id']],'hits',100); /}

会员ID=1的用户,积分增加5

{php M('member')->goInc(['id'=>1],'jifen',5); /}

goDec 递减

goDec($conditions,$field,$vp=1)
conditions: 查询条件,数组或者字符串 field: 递减字段,必须是int或者decimal类型,否则出错!
vp: 递减数值,默认1
同上,不再举例

add 新增一条数据

add($insert)
insert:数组
新增一条文章数据

{php

$insert = ['title'=>'测试','addtime'=>time(),'body'=>'这个是测试内容数据'];
$insert_id = M('article')->add($insert);

/}

注意:前台不允许操作level和level_group两个表

delete 删除一条数据

delete($conditions)
conditions: 查询条件,数组或者字符串
删除一条文章数据

{php

M('article')->delete(['id'=>1]);

/}

注意:前台不允许操作level和level_group两个表

update 更新数据

update($conditions,$row)
conditions: 查询条件,数组或者字符串
row: 更新的数据,数组类型
将文章id=1的数据中的标题改为极致CMS标题示例

{php M('article')->update(['id'=>1],['title'=>'极致CMS标题示例']); /}

注意:前台不允许操作level和level_group两个表

updateMuti 批量更新数据

updateMuti($conditions,$row)
conditions: 查询条件,数组
row: 更新的数据,数组类型
conditions和row两个数组的个数必须匹配,否则出错!
批量修改同个模型多条不同的数据
ID:1 修改标题
ID:2 修改点击量
ID:3 修改发布时间为当前时间


{php 
M('article')->updateMuti(
[
	['id'=>1],
	'id=2',
	'id=3',
],
[
	'title'=>'极致CMS标题示例',
	['hits'=>100],
	'addtime'=>time()
]); 
/}

findAll 批量查询数据

findAll($conditions,$order,$fields,$limit)
conditions:sql的字符串或者数组
order: 排序,默认null,支持组合排序,如:id desc,addtime desc
fields: 查询字段,默认null,可指定查询几个字段:id,title,keywords,body,addtime
limit: 查询条数,默认null,查询全部。

查询内容表热门的10条数据,并输出

{php
$lists = M('article')->findAll(['isshow'=>1],'hits desc',null,10);

/}
{foreach $lists as $v}
ID:{$v['id']}
标题:{$v['title']}
链接:{fun gourl($v)}//链接需要使用链接创建方法获取url,可以从内置函数这个章节找到方法
{/foreach}

find 查询单条数据

find($where=null,$order=null,$fields=null)
conditions:sql的字符串或者数组
order: 排序,默认null,支持组合排序,如:id desc,addtime desc
fields: 查询字段,默认null,可指定查询几个字段:id,title,keywords,body,addtime
查询ID=1的会员信息

{php

$m = M('member')->find(['id'=>1]);

/}
会员ID:{$m['id']}
会员昵称:{$m['username']}
会员积分:{$m['jifen']}

findPage 分页查询,返回数据列表和总条数

findPage($conditions,$order,$fields,$limit)
conditions:sql的字符串或者数组
order: 排序,默认null,支持组合排序,如:id desc,addtime desc
fields: 查询字段,默认null,可指定查询几个字段:id,title,keywords,body,addtime
limit: 查询条数,默认null,查询全部。 查询内容表10条数据,并获取总数据,进行分页处理

{php
//前台$frpage表示获取page参数的分页,如果是后台需要自己写$frpage = abs(intval($_GET['page'] ?? 1));
$start_1 = ($frpage - 1) * 10;
$limit = $start_1.',10';
$res = M('article')->findPage('isshow=1','id desc',null,$limit);
$sum = $res['sum'];//总条数
$lists = $res['lists'];//第一页数据
$allpage = ceil($sum/10);//总页数
/}
{foreach $lists as $v}
<p>{$v['id']}. {$v['title']}</p>

{/foreach}
{for $i=1;$i<=$allpage;$i++}
<a href="?page={$i}">第{$i}页</a>
{/for}

getField 单独查询某个字段值

getField($conditions,$field)
conditions:sql的字符串或者数组
field: 表字段,仅支持一个字段!
查询ID=1的会员钱包

{php 
echo M('member')->getField(['id'=>1],'money');
/}

runSql 执行SQL,返回0

runSql($sql)
sql: sql字符串
新增一个字段

{php
$sql="alter table jz_article add column test varchar(255) default null comment '测试';";
M()->runSql($sql);
/}

注意此处的M()是实例化的基础模型

findSql SQL查询数据,返回数组或者false

findSql($sql)
sql: sql字符串,需要带上表名称 查询文章ID=1的内容

{php

$lists = M()->findSql("select * from jz_article where id=1 and isshow=1");

/}
Edit this page
Last Updated:
Contributors: 涂福
Prev
功能标签
Next
自定义路由