·设为首页收藏本站📧邮箱修改🎁免费下载专区📒收藏夹👽聊天室📱AI智能体
返回列表 发布新帖

Class "table_common_banned" does not have a method named "delete_by_expiration".

182 2
发表于 2023-10-3 20:18:03 | 查看全部 阅读模式

马上注册,免费下载更多dz插件网资源。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
Discuz! System Error
Time: 2023-10-03 20:17:04 +0800 IP: 117.88.162.252 BackTraceID: 4c66834ef2ced157dc7c3dd7a340cc8d

Class "table_common_banned" does not have a method named "delete_by_expiration".
PHP Debug
No.FileLineCode
1admin.php58require(%s)
2source/admincp/admincp_tools.php36updatecache()
3source/function/function_cache.php26build_cache_ipbanned()
4source/function/cache/cache_ipbanned.php15discuz_base->__call()
5source/class/discuz/discuz_base.php44break()


我知道答案 回答被采纳将会获得1 贡献 已有1人回答
我要说一句 收起回复

评论2

IT618发布Lv.8 发表于 2023-10-3 20:18:14 | 查看全部
混用了X3.4的文件吧
我要说一句 收起回复
Discuz智能体Lv.8 发表于 2025-3-21 06:10:25 | 查看全部
根据你提供的错误信息,`Class "table_common_banned" does not have a method named "delete_by_expiration"`,这表明在Discuz!系统中,`table_common_banned`类中没有定义名为`delete_by_expiration`的方法。

### 问题分析:
1. **`table_common_banned`类**:这是Discuz!中用于处理封禁IP相关操作的一个类。通常情况下,这个类会包含一些与封禁IP相关的操作方法,比如添加、删除、查询等。

2. **`delete_by_expiration`方法**:从方法名来看,这个方法可能是用于删除过期的封禁记录。然而,根据错误信息,这个方法在`table_common_banned`类中并不存在。

### 解决方案:
1. **检查代码**:首先,你需要检查调用`delete_by_expiration`方法的代码部分。通常这个错误可能是由于插件或自定义代码中调用了不存在的方法导致的。

2. **自定义方法**:如果确实需要删除过期的封禁记录,你可以考虑在`table_common_banned`类中自定义一个`delete_by_expiration`方法。以下是一个简单的示例代码:

  
  1. class table_common_banned extends discuz_table
  2.    {
  3.        public function __construct() {
  4.            $this->_table = 'common_banned';
  5.            $this->_pk    = 'id';
  6.            parent::__construct();
  7.        }

  8.        public function delete_by_expiration() {
  9.            $timestamp = TIMESTAMP;
  10.            DB::query("DELETE FROM %t WHERE expiration < %d", array($this->_table, $timestamp));
  11.        }
  12.    }
复制代码


   在这个示例中,`delete_by_expiration`方法会删除所有过期时间小于当前时间的封禁记录。

3. **调用方法**:在需要删除过期封禁记录的地方,调用这个方法即可:

  
  1. C::t('common_banned')->delete_by_expiration();
复制代码


4. **缓存更新**:如果你在`build_cache_ipbanned`函数中调用了这个方法,确保在删除过期记录后更新缓存:

  
  1. function build_cache_ipbanned() {
  2.        C::t('common_banned')->delete_by_expiration();
  3.        // 其他缓存更新逻辑
  4.    }
复制代码


### 总结:
这个错误通常是由于调用了不存在的方法导致的。你可以通过自定义`delete_by_expiration`方法来解决这个问题,并确保在适当的地方调用它。如果你有更多关于Discuz!开发的问题,欢迎继续提问!
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
我要说一句 收起回复

回复

 懒得打字嘛,点击右侧快捷回复【查看最新发布】   【应用商城享更多资源】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

图文热点
关闭

站长推荐上一条 /1 下一条

AI智能体
投诉/建议联系

discuzaddons@vip.qq.com

未经授权禁止转载,复制和建立镜像,
如有违反,按照公告处理!!!
  • 联系QQ客服
  • 添加微信客服

联系DZ插件网微信客服|最近更新|Archiver|手机版|小黑屋|DZ插件网! ( 鄂ICP备20010621号-1 )|网站地图 知道创宇云防御

您的IP:18.221.87.167,GMT+8, 2025-4-3 03:19 , Processed in 0.334957 second(s), 79 queries , Gzip On, Redis On.

Powered by Discuz! X5.0 Licensed

© 2001-2025 Discuz! Team.

关灯 在本版发帖
扫一扫添加微信客服
QQ客服返回顶部
快速回复 返回顶部 返回列表