From 886cac5f952e95cff117f92465fcce2ef9405bfd Mon Sep 17 00:00:00 2001 From: F4ilji Date: Wed, 15 Apr 2026 16:41:08 +0500 Subject: [PATCH] changes --- .../Dashboard/Tasks/Posts/CreatePostTask.php | 15 ++++++++++++++- .../Dashboard/Tasks/Posts/UpdatePostTask.php | 13 +++++++++++-- .../UI/WEB/Controllers/PostController.php | 3 ++- 3 files changed, 27 insertions(+), 4 deletions(-) diff --git a/app/Containers/Dashboard/Tasks/Posts/CreatePostTask.php b/app/Containers/Dashboard/Tasks/Posts/CreatePostTask.php index 93dc342..7bdeace 100644 --- a/app/Containers/Dashboard/Tasks/Posts/CreatePostTask.php +++ b/app/Containers/Dashboard/Tasks/Posts/CreatePostTask.php @@ -21,7 +21,20 @@ class CreatePostTask public function run(array $data): Post { $processedData = $this->postDataProcessor->processCreate($data); - return Post::create($processedData); + + $tags = $processedData['tags'] ?? null; + + // Удаляем теги из данных, так как они обрабатываются отдельно + unset($processedData['tags']); + + $post = Post::create($processedData); + + // Синхронизируем теги если они есть + if (!empty($tags) && is_array($tags)) { + $post->syncTags($tags); + } + + return $post; } /** diff --git a/app/Containers/Dashboard/Tasks/Posts/UpdatePostTask.php b/app/Containers/Dashboard/Tasks/Posts/UpdatePostTask.php index df5f2ca..8b34cea 100644 --- a/app/Containers/Dashboard/Tasks/Posts/UpdatePostTask.php +++ b/app/Containers/Dashboard/Tasks/Posts/UpdatePostTask.php @@ -24,9 +24,18 @@ class UpdatePostTask ...$post->toArray(), ...$data, ]); - + + $tags = $processedData['tags'] ?? null; + + unset($processedData['tags']); + $post->update($processedData); - + + // Синхронизируем теги если они есть + if (!empty($tags) && is_array($tags)) { + $post->syncTags($tags); + } + return $post->fresh(); } } diff --git a/app/Containers/Dashboard/UI/WEB/Controllers/PostController.php b/app/Containers/Dashboard/UI/WEB/Controllers/PostController.php index 59a1f0e..98491ea 100644 --- a/app/Containers/Dashboard/UI/WEB/Controllers/PostController.php +++ b/app/Containers/Dashboard/UI/WEB/Controllers/PostController.php @@ -67,12 +67,13 @@ class PostController extends Controller */ public function edit(Post $post): \Inertia\Response { - $post->load(['category', 'seo']); + $post->load(['category', 'seo', 'tags']); $formData = $this->getPostFormDataAction->run(); return Inertia::render('Dashboard/Posts/Edit', [ 'post' => [ ...$post->toArray(), + 'tags' => $post->tags->map(fn($tag) => ['id' => $tag->id, 'name' => $tag->name, 'slug' => $tag->slug]), 'status' => $post->status?->value ?? $post->status, 'publish_setting' => [ 'publish_after' => $post->publish_at !== null,