X-Git-Url: http://source.bookstackapp.com/bookstack/blobdiff_plain/f2ee95ca03a2bc1c0f80b5d775a340d920784bdb..refs/pull/4467/head:/app/Entities/Models/Chapter.php diff --git a/app/Entities/Models/Chapter.php b/app/Entities/Models/Chapter.php index 224ded935..98889ce3f 100644 --- a/app/Entities/Models/Chapter.php +++ b/app/Entities/Models/Chapter.php @@ -18,11 +18,13 @@ class Chapter extends BookChild public $searchFactor = 1.2; - protected $fillable = ['name', 'description', 'priority', 'book_id']; - protected $hidden = ['restricted', 'pivot', 'deleted_at']; + protected $fillable = ['name', 'description', 'priority']; + protected $hidden = ['pivot', 'deleted_at']; /** * Get the pages that this chapter contains. + * + * @return HasMany */ public function pages(string $dir = 'ASC'): HasMany { @@ -50,9 +52,19 @@ class Chapter extends BookChild */ public function getVisiblePages(): Collection { - return $this->pages()->visible() + return $this->pages() + ->scopes('visible') ->orderBy('draft', 'desc') ->orderBy('priority', 'asc') ->get(); } + + /** + * Get a visible chapter by its book and page slugs. + * @throws \Illuminate\Database\Eloquent\ModelNotFoundException + */ + public static function getBySlugs(string $bookSlug, string $chapterSlug): self + { + return static::visible()->whereSlugs($bookSlug, $chapterSlug)->firstOrFail(); + } }