top-think / think-orm

Think ORM——the PHP Database&ORM Framework
Apache License 2.0
413 stars 171 forks source link

ThinkORM 3.0.18 版本重大bug scope查询都失效了 #599

Closed fonqing closed 1 month ago

fonqing commented 1 month ago

看这几天的更改提交记录,原来的scope处理是立即执行的,新版本组装scope到数组后,延后到pdoQuery里面去了。但是Query的find的方法先检查有没有scope。这时候 scope 还是空的。导致 find 都查询不到数据了。 能不能严谨点啊 服了

liu21st commented 1 month ago

给出下你的具体代码呢

fonqing commented 1 month ago

业务代码很多,我直接给出复现bug方法吧,模型里定义一个scopeByCode 的 scope ,然后模型查询 Model::byCode($var)->find() 这样查询不出数据。 也就是说,如果你的模型只动态调用了定义的scope方法,那么find 就查不出数据。

liu21st commented 1 month ago

用最新开发版测试下看看

fonqing commented 1 month ago

感谢回复。看代码增加了 scope 的检测。最新开发版测试可以了。