根据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`
并没有生成条件
这就是我要说的问题
我希望我花时间测试这个结果是有意义的
而不是被认为是奇葩
最佳答案