首页 > 解决方案 > 升级 laravel 到版本 8 时遗漏一些数据

问题描述

当我将我的项目升级到 version8 时,一些关系数据丢失了,数据存在于数据库中,但是当使用新的 laravel 执行查询时,一些数据丢失了,但是这个查询在旧版本的 laravel 上运行良好,没有问题。


我有两张桌子,一张是书籍,第二张是作家,这两张桌子之间的关系是多对多的(第三张桌子是枢轴)。我有一个查询返回作家的书籍清单:

Book::where('name','like', '%joe%')->with('writers')->get();

此查询非常适用于较旧的 laravel 版本,但现在当升级到新版本时,一些具有多个作者的记录未显示在书籍作者和作者字段中是 []

标签: phpmysqllaravellaravel-8

解决方案


试试这个类似于文档的例子。

Book::with(['writers' => function ($query) {
    $query->where('name', 'like', '%joe%');
}])->get();

推荐阅读