美文网首页
Laravel with和join一起用的时候需要注意

Laravel with和join一起用的时候需要注意

作者: gao922699 | 来源:发表于2024-05-13 16:42 被阅读0次

现象:Article::query()->with('user')->join('details','articles.id','=','details.article_id')->where('details.content','like','%test%')->get();

问题:这样写会导致model中article表的id被details表中的id覆盖,with的时候user原本关联的是article表的ID,此时确错误的关联了details表中的ID,导致数据错乱。

解决办法:指定ID字段,或放弃join,改用子查询
->select(['articles.id',....])

->whereIn(Detail::query()->where('content','like','%test%')->pluck('id'))

相关文章

网友评论

      本文标题:Laravel with和join一起用的时候需要注意

      本文链接:https://www.haomeiwen.com/subject/kzppfjtx.html