齐博x2模型里边钩子的创建与使用
在模型里边的钩子创建与使用方法跟在控制器里边的钩子创建及使用方法是有所区别的
在模型里边创建的钩子,你可以理解为执行一个函数,是无法调用模型里边的类的方法及属性的。
比如系统文件\application\common\model\Order.php
里边的这段代码如下
protected static function success_pay($order_info=[]){
//客户扣款
add_rmb($order_info['uid'],-abs($order_info['pay_money']),0,'购物消费');
//商家入帐
add_rmb($order_info['shop_uid'],abs($order_info['pay_money']),0,'销售商品');
static::send_msg($order_info);
get_hook('order_have_pay',$data=[],$order_info,$array=['dirname'=>self::$model_key],$use_common=true,self::$model_key); //钩子扩展
}
这个方法是用户 支付订单款后执行的操作。里边埋了一个钩子。
其中get_hook就是钩子函数,所以他是不能使用类里边的方法与属性的。
这里有一个很特殊的地方,就是增加了第6项参数,指定了当前的频道目录名 $dirname目的是为了避免此模型被其它地方频道或模型调用的时候,无法真实的获取到当前所在频道目录的问题。
同时也给第4项参数 ,$array=['dirname'=>self::$model_key] 特别传递了目录名,方便后面的调用。
上述就是预埋钩子的注意事项。
下面再给出一段代码,讲解如何使用模型钩子。
你可以创建文件
\application\shop\ext\order_have_pay\give_jifen.php
其中 order_have_pay就是钩子标志,give_jifen.php 功能文件名可以随意的。
其中文件是放在\application\shop\ext\这个目录里,代表只能是商城目录调用。如果要其它频道也可以调用的话,就需要换成 \application\common\ext\系统目录
文件里边的具体代码如下
<?php
$uid = $info['uid']; //$info 是订单信息
$webdb = config('webdb.M__'.$array['dirname']); //频道参数
$num = isset($webdb['give_jifen'])?$webdb['give_jifen']:2; //频道设置了赠与积分,就能频道的为标准
if ($num>0) {
add_jifen($uid,2,'购买商品赠送积分');
}
其中 $info及 $array两个变量都是通过函数传进来的。
这里要操作数据库的话,只能用引用
use think\Db;
直接操作数据库
齐博x2模型里边钩子的创建与使用的更多相关文章
- 齐博x1模型里边钩子的创建与使用
在模型里边的钩子创建与使用方法跟在控制器里边的钩子创建及使用方法是有所区别的在模型里边创建的钩子,你可以理解为执行一个函数,是无法调用模型里边的类的方法及属性的.比如系统文件\application\ ...
- 齐博x2是什么?
齐博x2是什么? 齐博x2是齐博x1的延申版本. 对小程序全方位加强
- 自建流媒体如何录制视频。齐博x1齐博x2齐博x3齐博x4齐博x5齐博x6齐博x7齐博x8齐博x9齐博x10
http://x1.eapis.site/ 先打开配置文件\conf\config.php 里边的内容大概如下,第一项是必须要配置的,换成你的网站域名网址.第二项,如果流媒体服务器配置了https证书 ...
- 表单快速启用城市地区功能 齐博x1齐博x2齐博x3齐博x4齐博x5齐博x6齐博x7齐博x8齐博x9齐博x10
比如分类系统\application\fenlei\config.php 修改这个文件,里边加入参数 'use_area'=>true, 那么会员中心与后台的,修改发布页面,都会自动加上城市地区 ...
- 频道插件如何对接圈子 齐博x1齐博x2齐博x3齐博x4齐博x5齐博x6齐博x7齐博x8齐博x9齐博x10
圈子黄页里要显示对应频道的数据列表,一般没有特殊要求的话,不需要建立PHP文件, 只须要做好模板即可,比如 \template\index_style\default\qun\shop\index.h ...
- 齐博x2向上滚动特效
要实现图中圈起来的向上滚动特效,大家可以参考下面的代码 <!--滚动开始--> <style type="text/css"> .auto-roll{ he ...
- 齐博x2新用户手工注册接口
由于手工注册有点太落后了,并不推荐,所以我们也没有单独的为API接口开发一个注册的页面,大家可以统一使用PC或WAP的注册页来当接口使用.请求地址是:http://qb.net/index.php/i ...
- 齐博x2自建流媒体RTMP直播服务器
这里只讲解大家最容易配置的Windows版,测试环境是2008版服务器及WIN7下载下面的软件,解压在任何目录都可,然后双击"启动.bat"即可http://down.php168 ...
- 那齐博x3又什么什么?
那齐博x3又什么什么? 齐博x3是齐博X1/齐博x2之后的升级版本. 主要优化圈子系统
随机推荐
- k8s暴露集群内和集群外服务的方法
集群内服务 一般 pod 都是根据 service 资源来进行集群内的暴露,因为 k8s 在 pod 启动前就已经给调度节点上的 pod 分配好 ip 地址了,因此我们并不能提前知道提供服务的 pod ...
- 总结-LCT
题单: https://www.zybuluo.com/xzyxzy/note/1027479 LuoguP3203 [HNOI2010]弹飞绵羊 动态加边,删边 #include <cstdi ...
- Excel 查找函数(三):HLOOKUP
函数讲解 [语法]HLOOKUP(lookup_value, table_array, row_index_num, [range_lookup]) [参数] lookup_value:查找值(必须是 ...
- Excel 查找函数(一):LOOKUP
序号 员工姓名 部门 职务 1 苏霞 法务部 法律顾问 2 包志林 财务部 财务总监 3 林娥云 安监部 部长 4 石少卿 质检部 质检员 5 于炳福 生产部 生产部 6 蒋琼志 仓储部 保管员 7 ...
- APICloud 可视化编程 - 拖拉拽实现专业级源码
低代码开发平台是无需编码 (0 代码或⽆代码) 或通过少量代码就可以快速生成应用程序的开发平台.它的强⼤之处在于,允许终端⽤户使⽤易于理解的可视化⼯具开发自己的应用程序,而不是传统的编写代码⽅式.当遇 ...
- KingbaseES 数据库Windows环境下注册数据库服务
关键字: KingbaseES.Java.Register.服务注册 一.安装前准备 1.1 软件环境要求 金仓数据库管理系统KingbaseES V8.0支持微软Windows 7.Windows ...
- web字体浮在图像中央
在做项目的过程中遇到了需要将图像作为背景,将字体显示在图像中央需求. 尝试了两种做法: 第一种方法为设置一个div设置属性为relative固定这个框的位置,将图片铺在div块里. 在div再设一个d ...
- [AI]-模型测试和评价指标
模型测试 import cv2 from torchvision import transforms, datasets, models from torch.utils.data import Da ...
- 人脸识别、活体检测(眨眼、摇头、张嘴动作)clmtrackr
人脸识别.活体检测(眨眼.摇头.张嘴动作)项目总结 项目需求 / 步骤实现描述: 1.申请摄像头权限,开始识别面部信息.同时开始录像 : 2.随机顺序生成面部检验动作: 3.并开始倒计时,需10s内完 ...
- 【学习笔记】GBDT算法和XGBoost
前言 这一篇内容我学了足足有五个小时,不仅仅是因为内容难以理解, 更是因为前面CART和提升树的概念和算法本质没有深刻理解,基本功不够就总是导致自己的理解会相互在脑子里打架,现在再回过头来,打算好好总 ...