X-Git-Url: http://source.bookstackapp.com/bookstack/blobdiff_plain/4b36df08a80f467c037de3bbdf85e13cd4cef9bc..refs/pull/5721/head:/app/Entities/Models/BookChild.php diff --git a/app/Entities/Models/BookChild.php b/app/Entities/Models/BookChild.php index 91f62dc40..ad54fb926 100644 --- a/app/Entities/Models/BookChild.php +++ b/app/Entities/Models/BookChild.php @@ -1,41 +1,27 @@ -with('book') - ->whereHas('book', function (Builder $query) use ($bookSlug) { - $query->where('slug', '=', $bookSlug); - }) - ->where('slug', '=', $childSlug); - } - /** * Get the book this page sits in. - * @return BelongsTo */ public function book(): BelongsTo { - return $this->belongsTo(Book::class); + return $this->belongsTo(Book::class)->withTrashed(); } /** @@ -43,14 +29,19 @@ abstract class BookChild extends Entity */ public function changeBook(int $newBookId): Entity { + $oldUrl = $this->getUrl(); $this->book_id = $newBookId; $this->refreshSlug(); $this->save(); $this->refresh(); + if ($oldUrl !== $this->getUrl()) { + app()->make(ReferenceUpdater::class)->updateEntityReferences($this, $oldUrl); + } + // Update all child pages if a chapter if ($this instanceof Chapter) { - foreach ($this->pages as $page) { + foreach ($this->pages()->withTrashed()->get() as $page) { $page->changeBook($newBookId); } }