X-Git-Url: http://source.bookstackapp.com/bookstack/blobdiff_plain/f28daa01d9d43d36c12b075bddca92be9e8f85e4..refs/pull/3349/head:/app/Entities/Models/Page.php diff --git a/app/Entities/Models/Page.php b/app/Entities/Models/Page.php index c28b9a305..c8217af57 100644 --- a/app/Entities/Models/Page.php +++ b/app/Entities/Models/Page.php @@ -10,19 +10,22 @@ use Illuminate\Database\Eloquent\Collection; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Relations\BelongsTo; use Illuminate\Database\Eloquent\Relations\HasMany; +use Illuminate\Database\Eloquent\Relations\HasOne; /** * Class Page. * - * @property int $chapter_id - * @property string $html - * @property string $markdown - * @property string $text - * @property bool $template - * @property bool $draft - * @property int $revision_count - * @property Chapter $chapter - * @property Collection $attachments + * @property int $chapter_id + * @property string $html + * @property string $markdown + * @property string $text + * @property bool $template + * @property bool $draft + * @property int $revision_count + * @property Chapter $chapter + * @property Collection $attachments + * @property Collection $revisions + * @property PageRevision $currentRevision */ class Page extends BookChild { @@ -82,6 +85,19 @@ class Page extends BookChild ->orderBy('id', 'desc'); } + /** + * Get the current revision for the page if existing. + * + * @return PageRevision|null + */ + public function currentRevision(): HasOne + { + return $this->hasOne(PageRevision::class) + ->where('type', '=', 'version') + ->orderBy('created_at', 'desc') + ->orderBy('id', 'desc'); + } + /** * Get all revision instances assigned to this page. * Includes all types of revisions. @@ -117,16 +133,6 @@ class Page extends BookChild return url('/' . implode('/', $parts)); } - /** - * Get the current revision for the page if existing. - * - * @return PageRevision|null - */ - public function getCurrentRevision() - { - return $this->revisions()->first(); - } - /** * Get this page for JSON display. */