From 92f2ade507e93505e339172bacad96b0362c9c63 Mon Sep 17 00:00:00 2001 From: eddy8 Date: Thu, 24 Oct 2019 09:40:07 +0800 Subject: [PATCH] improve: get tags from content_tags --- app/Http/Controllers/Admin/TagController.php | 8 ++++++++ app/Repository/Admin/ContentRepository.php | 17 +++++++++++++++++ resources/views/admin/content/add.blade.php | 5 +++-- 3 files changed, 28 insertions(+), 2 deletions(-) diff --git a/app/Http/Controllers/Admin/TagController.php b/app/Http/Controllers/Admin/TagController.php index 7508934..4ef9984 100644 --- a/app/Http/Controllers/Admin/TagController.php +++ b/app/Http/Controllers/Admin/TagController.php @@ -12,6 +12,8 @@ use Illuminate\Database\QueryException; use Illuminate\Http\Request; use Illuminate\Support\Str; use Illuminate\View\View; +use App\Model\Admin\ContentTag; +use Illuminate\Support\Facades\DB; class TagController extends Controller { @@ -132,13 +134,19 @@ class TagController extends Controller public function delete($id) { try { + DB::beginTransaction(); + TagRepository::delete($id); + ContentTag::where('tag_id', $id)->delete(); + + DB::commit(); return [ 'code' => 0, 'msg' => '删除成功', 'redirect' => route('admin::tag.index') ]; } catch (\RuntimeException $e) { + DB::rollBack(); return [ 'code' => 1, 'msg' => '删除失败:' . $e->getMessage(), diff --git a/app/Repository/Admin/ContentRepository.php b/app/Repository/Admin/ContentRepository.php index 671b98e..b6af1f0 100644 --- a/app/Repository/Admin/ContentRepository.php +++ b/app/Repository/Admin/ContentRepository.php @@ -6,8 +6,13 @@ namespace App\Repository\Admin; use App\Model\Admin\Content; +use App\Model\Admin\ContentTag; use App\Repository\Searchable; +/** + * 使用当前类时必须先调用 setTable 方法设置所要操作的数据库表 + * @package App\Repository\Admin + */ class ContentRepository { use Searchable; @@ -103,4 +108,16 @@ class ContentRepository ->orderBy('id', 'desc') ->paginate($perPage); } + + public static function tags($entityId, $contentId) + { + return ContentTag::query()->where('entity_id', $entityId)->where('content_id', $contentId) + ->leftJoin('tags', 'tags.id', '=', 'content_tags.tag_id') + ->get(['name', 'tag_id']); + } + + public static function tagNames($entityId, $contentId) + { + return self::tags($entityId, $contentId)->implode('name', ','); + } } diff --git a/resources/views/admin/content/add.blade.php b/resources/views/admin/content/add.blade.php index 389730c..08a846a 100644 --- a/resources/views/admin/content/add.blade.php +++ b/resources/views/admin/content/add.blade.php @@ -439,7 +439,7 @@
- +