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
-
-