博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Thinkphp5 模型里别名alias不生效bug【已解决】
阅读量:5884 次
发布时间:2019-06-19

本文共 399 字,大约阅读时间需要 1 分钟。

  hot3.png

使用很长一段时间的Thinkphp5,一直被一个问题困扰,就是模型里面数据查询无法使用别名,除非使用DB类

但是模型里面一般是直接使用

$this 或 静态方法 self

例如写一个 Join 查询

7c4eafc203f6d296be63dde0c761c957dcd.jpg

当前表取别名为t,查看当前Sql

a2609f17f9b1ac4c5f79996f1adc9c952c0.jpg

可以看到别名没有起作用,经过我再三翻找源码,定位的位置是

\thinkphp\library\think\db\Query.php

708b3d894810a6ed5ee43f4c8622bb69edc.jpg

尝试过,Db::name 与 self 都是这个分支

而 self 的表名是未转化的,转化一下就行,添加代码

        if (false !== strpos($table, '__')) {            $table = $this->parseSqlTable($table);        }

添加完成后截图

b1a35fdea73551ef987aba6be471a32e8f1.jpg

解决完成

转载于:https://my.oschina.net/18y/blog/1926295

你可能感兴趣的文章
nginx正向代理
查看>>
cloudstack4.2.1无法删除网络的故障解决办法
查看>>
PHP - 日期时间的转换
查看>>
用 Prettier 美化代码
查看>>
dynamips的前端dynagen解决CPU占用问题咯~
查看>>
解决执行脚本时爆“sqlplus: command not found”的问题
查看>>
使用SQLIO评估数据库磁盘性能
查看>>
在域中配置多元密码策略
查看>>
渗透测试技巧更新4
查看>>
Mysql存储过程中使用cursor
查看>>
IE8 中 session 管理的变化
查看>>
学习Unix怎么安装机器?《精通Unix下C语言与项目实践》读书笔记(14)
查看>>
《从零开始学Swift》学习笔记(Day 21)——函数返回值
查看>>
AD的备份与标准还原:深入浅出Active Directory系列(四)
查看>>
编译可在Android上运行的可执行文件:C/C++交叉编译环境
查看>>
To ADO.NET Entity Framework
查看>>
运用Ntop监控网络流量(视频Demo)
查看>>
SCOM 2007 R2监控系统安装部署(四)使用SCOM 2007 R2监控AD域控制器
查看>>
linux下将数字补齐为固定宽度的方式
查看>>
探讨微软团队开发利器VSTS联合MS PROJECT协同开发
查看>>