• 智能AI问答!更聪明、更完整、原创作!
  • 一款基于GPT的超级AI机器人,可以回答问题、聊天、创作、写文案!

提示 method not exist:think\db\Query->get

发布于 2024-12-14 22:49:10

根据你提供的错误信息“method not exist: think\db\Query->get”,这表明在使用 think\db\Query 类时,调用了一个不存在的方法 get()。在 ThinkPHP 框架中,查询构建器通常使用 select() 方法来获取结果,而不是 get()

修改建议

get() 方法替换为 select() 方法。以下是修改后的代码示例:

/**
 * @notes 下架key
 * @param $errorMsg
 * @author cjhao
 * @date 2023/8/10 14:20
 */
public function takeDownKey($errorMsg) {
    $keyAutoDown = ConfigService::get('chat_config', 'key_auto_down');
    // key自动下架关闭
    if (0 == $keyAutoDown) {
        echo "key自动下架关闭。\n"; // 调试输出没有匹配到的情况
        return true;
    }

    $where = [];
    $where[] = ['ai_key', '=', $this->aiKey];
    if (is_array($this->apiKey)) {
        foreach ($this->apiKey as $item => $value) {
            $where[] = [$item, '=', $value];
        }
    } else {
        $where[] = ['key', '=', $this->apiKey];
    }

    // 检查是否有符合条件的记录
    $existingKeys = KeyPool::where($where)->select(); // 使用 select() 方法
    if ($existingKeys->isEmpty()) {
        echo "没有找到符合条件的记录。\n"; // 调试输出
        return false;
    }

    $errorMsg['stop_time'] = date('Y-m-d H:i:s');
    // 更新key
    $updatedRows = KeyPool::where($where)->update([
        'status' => 0,
        'notice' => json_encode($errorMsg, JSON_UNESCAPED_UNICODE)
    ]);

    if ($updatedRows > 0) {
        echo "成功下架key,受影响的行数: $updatedRows\n"; // 调试输出
    } else {
        echo "下架key失败,未更新任何记录。\n"; // 调试输出
    }

    // 删除缓存
    $this->delKey();
}

关键修改点:

  • get() 方法替换为 select() 方法,以符合 ThinkPHP 的查询构建器用法。

这样修改后,代码应该能够正常运行,并且可以正确检查是否有符合条件的记录。

0 条评论

发布
问题

在线
客服