diff --git a/app/Http/Controllers/Admin/TagController.php b/app/Http/Controllers/Admin/TagController.php index 7508934dec940ebf7d7c24d9d50bf142dff00049..4ef998494e18ddcadf1df5613f1767b3d34e3269 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 671b98ec8194d6f0b0340c1a9bfbc661fa6753f9..b6af1f0d15d1e5304e1880755a124efac99e83a7 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 389730ccbdb4fa5e92287acd4ba57c6a341227d1..08a846a896842f9b470b1cf10638e2dc11d96c52 100644 --- a/resources/views/admin/content/add.blade.php +++ b/resources/views/admin/content/add.blade.php @@ -439,7 +439,7 @@
- +