tp6使用模型跨库联查统计withCount
这是一个关于如何在两个不同数据库中进行跨库查询的PHP代码示例。首先,我们需要使用ORM(对象关系映射)来避免直接操作数据库。在这个例子中,我们使用了TP6框架。1. 前置条件:我们需要两个数据表在一起,并且有一个账号密码可以访问这两个数据表。2. 查询方法:我们使用`withCount`方法来获取其他数据库中的统计数据。在这个方法中,我们定义了一个匿名函数,用于构建一个SQL查询语句,该语句将两个数据库中的表连接起来,并添加一个条件来过滤结果。这个示例展示了如何在不使用DB类的情况下,通过ORM和匿名函数来实现跨库查询。

标题不知道起什么好就叫TP6的跨库查询了

一些情况说明

  1. 用户表在其他数据库
  2. 需要查询的统计数据的表在其他库
  3. 需要查询用户所发布的资源数

由于偏爱ORM使用模型查询 ,能不用DB类就不用的情况下,使用了下面的方法

前置条件

  1. 两个数据需要在一起
  2. 使用一个账号密码访问(此处略坑)

查询方法

     $model->withCount([
        'sites' => function (BaseQuery $query, &$alias) use ($times) {
            $query->table('数据库名.表名');
            $query->where('条件');
        }
    ]);
咻兔哔
咻兔哔·2021年3月31日

本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处

推荐文章

构建现代化个人博客系统:技术亮点与创新实践
后端技术

构建现代化个人博客系统:技术亮点与创新实践

本文介绍了作者构建现代化个人博客系统的技术选型、架构设计和创新实践。核心亮点包括采用Go+Nuxt.js+Vue3技术栈,实现高性能、可扩展的博客平台;创新功能如AI智能摘要生成系统、高性能全文搜索、现代化文件上传系统;微服务化架构、容器化部署及多层次安全防护;性能优化策略如缓存策略、数据库优化和前端性能优化。此外,还展示了智能简历模块、Waline评论系统及多主题支持等特色功能,系统性能指标优异。作者分享了技术收获与未来规划,旨在帮助全栈开发者提升技术能力。

12月10日16
本站更换了新的技术栈
后端技术

本站更换了新的技术栈

本文介绍了基于Go+Nuxt.js+Vue3技术栈构建的现代化个人博客系统。该系统采用微服务架构,包含前台展示、后台管理和API服务三大模块,支持容器化部署,具备高性能与高可用性。后端使用Go、Gin、GORM等技术,前端采用Nuxt.js+Vue3+TailwindCSS,并集成AI智能摘要生成、全文搜索、文件上传等核心功能。系统注重安全设计,实施JWT认证、XSS防护等措施,同时通过Redis缓存、CDN加速等策略优化性能。整体架构展示了现代Web开发的最佳实践,为同类项目提供参考价值。

12月10日14
Gorm格式化时间输出的另一种实现
后端技术

Gorm格式化时间输出的另一种实现

Gorm在读取时间时默认带有时区,不符合常规的日期格式。本文提出了一种通过自定义结构体和使用Gorm的Hook方式来解决这个问题。作者首先定义了一个只包含时间字段的结构体,并使用`Str`后缀和`json`标签来指定时间字段只参与存储而不参与数据输出。接着,通过Gorm的Hook机制实现时间字段的格式化。虽然这种方法不是特别高明,但确实提供了一种有效的解决方案。

7月22日17
Golang三方库收集-不定期更新
后端技术

Golang三方库收集-不定期更新

以下是一些热门的第三方库,包括网络请求库、RPC库、Web框架、热重启库、定时任务库、获取机器状态库、JWT库、验证码库、邮件库、汉字转拼音库、消息队列库、随机数库、Redis客户端库、雪花 ID 生成器库、Excel处理库、WEB框架库、数据库库、配置库、REDIS库、工具包库、参数验证库、日志库、JSON库、协程池库和类型转换库。这些库各有特色,适用于不同的开发场景,值得一试。

7月28日7