6.0.0 RC2 查询关联模型数据指定的条件不生效

浏览:290 发布日期:2019/05/22 分类:ThinkPHP6专区
如题

根据5.1和6.0预览版文档的说明来看

通过关联模型获取关联数据的使用方法是一致的
文档原文地址:https://www.kancloud.cn/manual/thinkphp6_0/1037601
其中,关联查询部分的原文如下:$article = Article::find(1);
// 获取文章的所有评论
dump($article->comments);
// 也可以进行条件搜索
dump($article->comments()->where('status',1)->select());
这个用法在5.1的版本中使用时是没有问题的,可以得到正确的查询结果
但在6.0中,使用这种方式获得评论表的数据会发生条件不生效的问题
运行原文中的代码,会得到评论表的所有数据,而不是指定文章的评论
更不是指定文章下评论状态为1的评论

我刚才说条件不生效,是针对$article->comments()之后的
即使后面跟上where条件,并指定一个不存在的字段,也不会报错提示Column xx不存在

再来看fetchSql()后,对应的sql语句:
SELECT * FROM `comment`
并没有生成条件

这就是我要说的问题
我希望我花时间测试这个结果是有意义的
而不是被认为是奇葩
最佳答案
评论( 相关
后面还有条评论,点击查看>>