我正在保存/更新模型并使用刷新()方法来输出新数据。Laravel 文档说:如果您计划在使用 save 或 saveMany 方法后访问关系,您可能希望使用刷新方法重新加载模型及其关系控制器 public function store() { // $comic = new Comic; $comic->fill($this->validateComic()); $comic->save(); return $comic->refresh(); } public function update(Comic $comic) { // $comic->fill($this->validateComic()); $comic->save(); return $comic->refresh(); }模型在漫画模型中,我定义了默认的急切加载: protected $with = ['series', 'series.publisher'];这非常适合简单的 GET 方法。但如果我保存模型并对其使用刷新() ,输出就会失去其关系。store() 和 update() 方法的行为也不同。store ()方法没有给我任何关系。update ()方法仅返回系列关系(但不返回嵌套关系)。这是一个错误还是我在文档中遗漏了某些内容?谢谢。示例数据{"comic_id":21,"series_id":5,"comic_issue":"2","comic_name":"Test after 6","status_id":1,"comic_rating":null,"comic_release_date":"2015-09-26","comic_read_date":null,"comic_summary":"Summary 5","created_at":"2020-08-07T17:28:14.000000Z","updated_at":"2020-08-08T17:14:16.000000Z","series": { "series_id":5, "series_name":"Assumenda consectetur.", "publisher_id":4, "release_date":null, "publisher": { "publisher_id":4, "publisher_name":"Aliquam earum." } }}
1 回答
慕无忌1623718
TA贡献1744条经验 获得超4个赞
这实际上是预期的refresh
工作方式。refresh
仅重新加载已加载的关系。在第一个示例中,没有加载任何关系,因为该模型不是从数据库中检索的,它是您直接创建的全新模型实例。第二个示例很可能是路由模型绑定,其中模型已从数据库返回,并且因为您正在使用它protected $with
,所以它已加载这些关系,因此它会重新加载这些关系。
- 1 回答
- 0 关注
- 75 浏览
添加回答
举报
0/150
提交
取消