TP6模型事件-查询后onAfterRead不好用
TP6模型事件-查询后onAfterRead不好用
比如,我想实现浏览新闻后,浏览次数加1
实现:
public static function onAfterRead($news)
{
$news->read_number += 1;
$news->save();
}
运行后,浏览次数加1了,很好,对不对...
thinkphp5.1模型查询时间戳create_time,然后作为条件比较大小
thinkphp5.1模型查询时间戳create_time,然后作为条件比较大小
从数据库中查询出时间戳create_time,然后与当前时间比较大小,做后续操作
如果是模型查询
$rs = $this->where()->field("create_time")->find();
则,$rs...
tp6模型事件回调函数中不能使用$this
tp6模型事件回调函数中不能使用$this
tp5模型事件回调函数中不能使用$this,使用会报错,涉及到数据库操作使用Db类,不能使用$this->save()之类的方式
如果回调函数中需要使用类内函数,需要将函数定义为static,通过self::调用
给个例子:分类删除前删除该分类的子分类
public stat...
tp6 模型事件onAfterDelete,onAfterUpdate
tp6 模型事件,感觉有点迷糊,记录一下能正常使用的模型事件代码:
onAfterDelete
作用:删除分类之后删除下级下下级分类
/**
* 模型事件-删除后
* 删除分类之后删除下级分类
*/
public static function onAfterDelete($model){
self:...
thinkphp6 模型事件onAfterUpdate死循环
在model里面onAfterUpdate里面调用$model->save()导致死循环
死循环代码:
public static function onAfterUpdate($model){
$model['dataSort'] += 2;
$model->save();
}
public fun...
tp6 模型事件onBeforeDelete,onAfterDelete
tp6 模型事件onBeforeDelete,onAfterDelete
self::destroy($id);可以触发模型事件onBeforeDelete,onAfterDelete
打印结果是:
thinkphp5.1跨模块调用控制器或者模型
tp5.1 采用命名空间的方式进行调用。
或者直接用助手函数model
比如我们在wap模块调用home模块里面的模型
$shop = model('home/shop')->getById((int)$details['shopId']);
thinkphp5 助手函数 model 模型调用
模型类可以使用静态调用或者实例化调用两种方式,例如:
//静态调用
$blog = Blog::get(1);//以id为1作为条件(自动根据主键来查)
// 实例化模型
$blog = new Blog();
// 使用 Loader 类实例化(单例)
...
thinkphp5.1 跨模型调用
模型调用另一个模型时,如果是在同一个命名空间下,是不需要引入模型,可以直接使用。命名空间,相当于是当前目录。
示例:
$configlist = Config::where($where_config)
->order(['dataSort','configId'])
->select();
或者调用另一个模型...
thinkphp3.2 model名称不存在对应的数据表可以吗?
控制器中用到$m = D('Home/Carts');
但是数据库中没有carts这个表,提问错误
1146:Table 'sxtcs_tp.zht_carts' doesn't exist [ SQL语句 ] : SHOW COLUMNS FROM `zht_carts`
thinkphp d 方法没有对应...
dedecms增加新模型不显示
织梦dedecms增加新模型不显示
后台【核心>频道模型>内容模型管理】,‘增加新模型’,一切按默认配置,点保存。
然后模型列表里面不显示。
【生成>更新系统缓存】,然后清空浏览器缓存,还是不显示。
在网上找了半天,发现几乎没有网友记录相关信息。
可能别人没碰到过这个问题或者这根本就不是...
5.1中模型不会自动获取主键名称,必须设置pk属性。
默认主键为id,如果你没有使用id作为主键名,需要在模型中设置属性:
<?php
namespace app\index\model;
use think\Model;
class User extends Model
{
protected $pk = 'uid';
}
20190124
...
thinkphp5.1模型查询
<?php
namespace app\index\model;
use think\Model;
use think\Db;
class User extends Model {
protected $pk = 'id';
/**
* 查询-模型查询和数据库查询方法的区别主要在于,模型中的查询的数据在获取的时候会经过获取...
thinkphp5.1模型删除
<?php
namespace app\index\model;
use think\Model;
use think\Db;
use think\facade\Request;
class User extends Model {
protected $pk = 'id';
/**
* 删除-删除模型数据,可以在查询后调用...
thinkphp5.1模型更新修改
<?php
namespace app\index\model;
use think\Model;
use think\Db;
use think\facade\Request;
class Articles extends Model {
protected $pk = 'articleId';
/**
* 更新-查找并更...
thinkphp5.1模型新增
<?php
namespace app\index\model;
use think\Model;
use think\Db;
use think\facade\Request;
class Articles extends Model {
protected $pk = 'articleId';
/**
* 新增
*/...
关于本站
“最难不过坚持”
本人承接扒站仿站,php网站维护,病毒查杀,网站编辑,网站改版,html制作
有需要网站维护,改版,病毒查杀,网站编辑,网站备案,html制作等相关的工作可以联系我。
本人有多年相关工作经验,也可提供免费咨询,交个朋友。
有需要探讨问题的朋友,也可以加我微信,共同探讨!
微信:15011482830 QQ:408917339
2655
39
分类目录
最新评论
- https://jueru.net/
-
- :weixiao:
-
- :shuijiao: :weiqu: :zhenbang: :leng:
-
- :yiwen: :yiwen: :yiwen: :yiwen:
-
- 这个业务逻辑多少都有点奇怪了,阅读浏览次数增值在新闻详情页的控制器方法里setInc,这怎么还写进模型事件里了。如果非要用onAfterRead也可以,把新闻文章的内容单独分出来一个news_content表,然后把它和news做关联,然后给news_content表的onAfterRead事件做增值处理,这样点进新闻页内查询到文章内容时才会触发它。
-
文章标签更多