我正在保存/更新模型并使用刷新()方法來輸出新數據。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 關注
- 100 瀏覽
添加回答
舉報
0/150
提交
取消