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<Page>
*/
public function pages(string $dir = 'ASC'): HasMany
->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();
+ }
}