/** * Finds the DvsPage by a route name and preview hash * * @param string $name * @param string $previewHash * @return DvsPage */ public function findByRouteNameAndPreviewHash($name, $previewHash) { $page = $this->Page->whereRouteName($name)->firstOrFail(); $page->version = $this->getPageVersionByPreviewHash($page, $previewHash); if (!$page->version) { $page->version = $this->getLivePageVersion($page); $page->version->preview_message = array('warning' => 'The page version you are trying to access is no longer available'); } if ($page->version) { $page = $this->wrapFieldsAroundPage($page, $page->version); $page->version->preview_message = array('message' => 'You are viewing a preview of a specific page version, which may or may not be live'); } return $page; }