From 2e264509774a387bdafbd184267f9ecc10c23ca3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AD=99=E5=BB=BA=E5=8D=8E?= Date: Fri, 12 Apr 2019 15:27:10 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=A8=A1=E5=9E=8B=E5=86=85?= =?UTF-8?q?=E5=AE=B9=E8=AF=A6=E6=83=85=E9=A1=B5demo?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/Front/ContentController.php | 22 ++ app/Repository/Admin/ContentRepository.php | 13 ++ resources/views/front/content/show.blade.php | 200 ++++++++++++++++++ routes/web.php | 4 + 4 files changed, 239 insertions(+) create mode 100644 app/Http/Controllers/Front/ContentController.php create mode 100644 resources/views/front/content/show.blade.php diff --git a/app/Http/Controllers/Front/ContentController.php b/app/Http/Controllers/Front/ContentController.php new file mode 100644 index 0000000..4842aa9 --- /dev/null +++ b/app/Http/Controllers/Front/ContentController.php @@ -0,0 +1,22 @@ +findOrFail($entityId); + + ContentRepository::setTable($entity->table_name); + $content = ContentRepository::findOrFail($contentId); + + return view( + 'front.content.show', + array_merge(['content' => $content, 'entityId' => $entityId], ContentRepository::adjacent($contentId)) + ); + } +} diff --git a/app/Repository/Admin/ContentRepository.php b/app/Repository/Admin/ContentRepository.php index d1add9b..7bdc287 100644 --- a/app/Repository/Admin/ContentRepository.php +++ b/app/Repository/Admin/ContentRepository.php @@ -55,6 +55,11 @@ class ContentRepository return self::$model->newQuery()->find($id); } + public static function findOrFail($id) + { + return self::$model->newQuery()->findOrFail($id); + } + public static function delete($id) { return self::$model->newQuery()->where('id', $id)->delete(); @@ -76,4 +81,12 @@ class ContentRepository } }, $data); } + + public static function adjacent($id) + { + return [ + 'previous' => self::$model->newQuery()->where('id', '<', $id)->first(), + 'next' => self::$model->newQuery()->where('id', '>', $id)->first() + ]; + } } diff --git a/resources/views/front/content/show.blade.php b/resources/views/front/content/show.blade.php new file mode 100644 index 0000000..361a9b3 --- /dev/null +++ b/resources/views/front/content/show.blade.php @@ -0,0 +1,200 @@ + + + + {{ $content->title }} + + + + + + + + + + + +
+ +
+ + +
+

{{ $content->title }}

+

发布于:{{ $content->created_at }} 最后更新:{{ $content->updated_at }}

+
+
+ + {!! $content->content !!} + +
+ + +
+ + +
+ +
+ + +
+ + +
+
+ @if($previous) + < 上一篇
+

{{ $previous->title }}

+ @endif +
+
+ @if($next) + 下一篇 >
+

{{ $next->title }}

+ @endif +
+
+ + + + +
+ + + + + + + + diff --git a/routes/web.php b/routes/web.php index 9b57db1..aec1d1c 100644 --- a/routes/web.php +++ b/routes/web.php @@ -21,6 +21,10 @@ Route::group( // 首页 Route::get('/', 'HomeController@index')->name('index'); + // 模型内容 + Route::get('/entity/{entityId}/content/{contentId}', 'ContentController@show') + ->name('content')->where(['entityId' => Regexp::RESOURCE_ID, 'contentId' => Regexp::RESOURCE_ID]); + // 评论列表 Route::get('/entity/{entityId}/content/{contentId}/comment', 'CommentController@list') ->name('comment.list')->where(['entityId' => Regexp::RESOURCE_ID, 'contentId' => Regexp::RESOURCE_ID]); -- GitLab