X-Git-Url: http://source.bookstackapp.com/bookstack/blobdiff_plain/307fae39c450f687aba93e589e947e5389357601..refs/pull/5689/head:/app/Entities/Models/Chapter.php diff --git a/app/Entities/Models/Chapter.php b/app/Entities/Models/Chapter.php index 6c5f059ac..088d199da 100644 --- a/app/Entities/Models/Chapter.php +++ b/app/Entities/Models/Chapter.php @@ -2,6 +2,7 @@ namespace BookStack\Entities\Models; +use Illuminate\Database\Eloquent\Relations\BelongsTo; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Relations\HasMany; use Illuminate\Support\Collection; @@ -10,7 +11,8 @@ use Illuminate\Support\Collection; * Class Chapter. * * @property Collection $pages - * @property string $description + * @property ?int $default_template_id + * @property ?Page $defaultTemplate */ class Chapter extends BookChild { @@ -20,7 +22,7 @@ class Chapter extends BookChild public float $searchFactor = 1.2; protected $fillable = ['name', 'description', 'priority']; - protected $hidden = ['pivot', 'deleted_at']; + protected $hidden = ['pivot', 'deleted_at', 'description_html']; /** * Get the pages that this chapter contains. @@ -48,8 +50,17 @@ class Chapter extends BookChild return url('/' . implode('/', $parts)); } + /** + * Get the Page that is used as default template for newly created pages within this Chapter. + */ + public function defaultTemplate(): BelongsTo + { + return $this->belongsTo(Page::class, 'default_template_id'); + } + /** * Get the visible pages in this chapter. + * @returns Collection */ public function getVisiblePages(): Collection { @@ -59,13 +70,4 @@ class Chapter extends BookChild ->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(); - } }