From 6849e908c79c18f6599a1f0aae2289114494a461 Mon Sep 17 00:00:00 2001 From: xuanchen <122383162@qq.com> Date: Mon, 29 Nov 2021 16:05:46 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4=E8=A7=86=E9=A2=91=E8=AF=A6?= =?UTF-8?q?=E6=83=85=E9=A1=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/Video/IndexController.php | 78 ++++++++++--------- app/Http/Controllers/VideoController.php | 33 ++++++++ app/Models/Article.php | 28 +++++-- app/Models/Video.php | 21 ++++- resources/views/category/kxyj.blade.php | 62 +++++---------- resources/views/video/show.blade.php | 36 +++++++++ routes/web.php | 4 + 7 files changed, 175 insertions(+), 87 deletions(-) create mode 100644 app/Http/Controllers/VideoController.php create mode 100644 resources/views/video/show.blade.php diff --git a/app/Admin/Controllers/Video/IndexController.php b/app/Admin/Controllers/Video/IndexController.php index 4fe5764..66e1d24 100644 --- a/app/Admin/Controllers/Video/IndexController.php +++ b/app/Admin/Controllers/Video/IndexController.php @@ -22,9 +22,9 @@ class IndexController extends AdminController $filter->column(1 / 2, function ($filter) { $filter->like('title', '视频名称'); $filter->like('category.id', '分类名称') - ->select(Category::selectOptions(function ($model) { - return $model->where('status', 1)->where('type', Category::TYPE_ADVERT); - }, '所有分类')); + ->select(Category::selectOptions(function ($model) { + return $model->where('status', 1)->where('type', Category::TYPE_ADVERT); + }, '所有分类')); }); $filter->disableIdFilter(); }); @@ -35,60 +35,64 @@ class IndexController extends AdminController $grid->column('link', '视频地址')->downloadable(); $grid->column('category.title', '分类名称'); $grid->column('sort', '排序'); + $grid->column('created_at', '发布时间'); return $grid; } /** * Make a form builder. + * * @return Form */ - protected function form() + protected function form(): Form { $form = new Form(new Video()); $form->text('title', '视频名称')->required(); $form->select('category_id', '所属分类') - ->options(function () { - return Category::query() - ->where('status', 1) - ->where('type', Category::TYPE_VIDEO) - ->pluck('title', 'id'); - }) - ->rules('required|min:1', [ - 'required' => '必须选择所属分类', - 'min' => '必须选择所属分类', - ]); + ->options(function () { + return Category::query() + ->where('status', 1) + ->where('type', Category::TYPE_VIDEO) + ->pluck('title', 'id'); + }) + ->rules('required|min:1', [ + 'required' => '必须选择所属分类', + 'min' => '必须选择所属分类', + ]); $form->file('cover', '封面') - ->rules(function ($form) { - if ($form->model()->cover != []) { - return 'nullable|image'; - } else { - return 'required'; - } - }) - ->move('images/' . date('Y/m/d')) - ->removable() - ->uniqueName(); + ->rules(function ($form) { + if ($form->model()->cover != []) { + return 'nullable|image'; + } else { + return 'required'; + } + }) + ->move('images/'.date('Y/m/d')) + ->removable() + ->uniqueName(); $form->file('link', '视频') - ->rules(function ($form) { - if ($form->model()->cover != []) { - return 'nullable|image'; - } else { - return 'required'; - } - }) - ->move('videos/' . date('Y/m/d')) - ->removable() - ->uniqueName(); + ->rules(function ($form) { + if ($form->model()->cover != []) { + return 'nullable|image'; + } else { + return 'required'; + } + }) + ->move('videos/'.date('Y/m/d')) + ->removable() + ->uniqueName(); $form->number('sort', '排序') - ->default(1) - ->required() - ->help('数字越大越靠前'); + ->default(1) + ->required() + ->help('数字越大越靠前'); + + $form->datetime('created_at', '发布时间'); return $form; } diff --git a/app/Http/Controllers/VideoController.php b/app/Http/Controllers/VideoController.php new file mode 100644 index 0000000..26342af --- /dev/null +++ b/app/Http/Controllers/VideoController.php @@ -0,0 +1,33 @@ +category; + + if ($category->childrens->isEmpty() && $category->parent) { + $parent = $category->parent; + } + + + return view('video.show', compact('video', 'parent', 'category')); + + } + +} diff --git a/app/Models/Article.php b/app/Models/Article.php index af69bfc..e31ffa8 100644 --- a/app/Models/Article.php +++ b/app/Models/Article.php @@ -12,11 +12,25 @@ class Article extends Model use HasCovers, BelongsToCategory; + /** + * Notes: 获取详情地址 + * + * @Author: 玄尘 + * @Date: 2021/11/29 15:46 + * @return string + */ public function getLinkAttribute(): string { return route('article.show', $this); } + /** + * Notes: 获取logo地址 + * + * @Author: 玄尘 + * @Date: 2021/11/29 15:46 + * @return string + */ public function getLogoUrlAttribute(): string { return $this->parseImageUrl($this->logo); @@ -24,6 +38,7 @@ class Article extends Model /*** * Notes: 获取详情内图片 + * * @Author: 玄尘 * @Date : 2021/10/8 11:58 * @return mixed|string @@ -41,6 +56,7 @@ class Article extends Model /** * Notes: 获取一个默认图片 + * * @Author: 玄尘 * @Date : 2020/6/3 16:29 * @return mixed|string @@ -54,7 +70,7 @@ class Article extends Model if ($path) { $this->cover = str_replace("/storage", "", $path); $this->save(); - $path = config('app.url') . $path; + $path = config('app.url').$path; } @@ -66,6 +82,7 @@ class Article extends Model /** * Notes: 关联分类 + * * @Author: 玄尘 * @Date : 2021/4/2 9:11 * @return \Illuminate\Database\Eloquent\Relations\BelongsToMany @@ -73,7 +90,7 @@ class Article extends Model public function categories(): BelongsToMany { return $this->belongsToMany(Category::class) - ->using(ArticleCategory::class); + ->using(ArticleCategory::class); } public function category(): BelongsTo @@ -88,6 +105,7 @@ class Article extends Model /** * Notes: description + * * @Author: 玄尘 * @Date : 2021/4/2 9:17 * @param $query @@ -96,15 +114,11 @@ class Article extends Model */ public function scopeByCategory($query, $ids) { - if (!is_array($ids)) { + if (! is_array($ids)) { $ids = [$ids]; } return $query->whereIn('category_id', $ids); - // - // return $query->whereHas('categories', function ($q) use ($ids) { - // $q->whereIN('id', $ids); - // }); } } diff --git a/app/Models/Video.php b/app/Models/Video.php index f725201..8985550 100644 --- a/app/Models/Video.php +++ b/app/Models/Video.php @@ -11,9 +11,28 @@ class Video extends Model use HasCovers, BelongsToCategory; - public function getlinkUrlAttribute(): string + /** + * Notes: 返回视频地址 + * + * @Author: 玄尘 + * @Date: 2021/11/29 15:43 + * @return string + */ + public function getLinkUrlAttribute(): string { return $this->parseImageUrl($this->link); } + /** + * Notes: 返回视频详情地址 + * + * @Author: 玄尘 + * @Date: 2021/11/29 15:43 + * @return string + */ + public function getShowLinkAttribute(): string + { + return route('video.show', $this); + } + } diff --git a/resources/views/category/kxyj.blade.php b/resources/views/category/kxyj.blade.php index 1dd615a..e10c1d4 100644 --- a/resources/views/category/kxyj.blade.php +++ b/resources/views/category/kxyj.blade.php @@ -262,21 +262,19 @@ poster="{{ getVideoByCate(29,'cover_url') }}" style="object-fit: fill;"> - {{-- --}} @endif - -
+
{{ getVideoByCate(29,'title') }}
@endif - -
- {{--
--}} - {{--
--}} - {{-- {{ getOneCategory(30,'title') }}--}} - {{--
--}} - {{-- --}} - {{--
--}} - {{-- 查看更多>--}} - {{--
--}} - {{--
--}} diff --git a/resources/views/video/show.blade.php b/resources/views/video/show.blade.php new file mode 100644 index 0000000..6e6d92f --- /dev/null +++ b/resources/views/video/show.blade.php @@ -0,0 +1,36 @@ +@extends('layouts.app') + +@section('title', '视频详情') + +@section('content') + + + @include('category.navigation') + + +
+
+ + @include('category.left') + +
+
{{ $video->title }}
+
+ {{ $video->created_at->format('Y-m-d') }} +
+
+ +
+
+ +
+
+@endsection diff --git a/routes/web.php b/routes/web.php index f3f4d67..76dea71 100644 --- a/routes/web.php +++ b/routes/web.php @@ -15,7 +15,11 @@ Route::get('search', 'IndexController@search')->name('index.search'); Route::get('articles/{article}', 'ArticleController@show')->name('article.show'); +Route::get('videos/{video}', 'VideoController@show')->name('video.show'); + Route::get('category/{category}', 'CategoryController@index')->name('category.show'); + + //以下为导入数据 Route::get('test/set_article_category', 'TestController@set_article_category'); Route::get('test/set_category', 'TestController@set_category');