From e27e539aa3321b53cccecaceb5db3293e96a9b95 Mon Sep 17 00:00:00 2001 From: Wisp X Date: Fri, 18 Feb 2022 13:49:31 +0800 Subject: [PATCH] =?UTF-8?q?:sparkles:=20=E6=94=B9=E8=BF=9B=20&=20=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D=20bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/Admin/StrategyController.php | 23 ++----------------- app/Models/Strategy.php | 9 +++++--- 2 files changed, 8 insertions(+), 24 deletions(-) diff --git a/app/Http/Controllers/Admin/StrategyController.php b/app/Http/Controllers/Admin/StrategyController.php index a2a9e7cb..765b3bd0 100644 --- a/app/Http/Controllers/Admin/StrategyController.php +++ b/app/Http/Controllers/Admin/StrategyController.php @@ -4,10 +4,8 @@ namespace App\Http\Controllers\Admin; use App\Http\Controllers\Controller; use App\Http\Requests\Admin\StrategyRequest; -use App\Models\Group; use App\Models\Strategy; use Illuminate\Database\Eloquent\Builder; -use Illuminate\Database\Eloquent\Relations\Pivot; use Illuminate\Http\Request; use Illuminate\Http\Response; use Illuminate\Support\Facades\DB; @@ -41,13 +39,7 @@ class StrategyController extends Controller $strategy = new Strategy($validated); DB::transaction(function () use ($strategy, $validated) { $strategy->save(); - DB::table('group_strategy')->insert( - Group::query() - ->whereIn('id', $validated['groups'] ?: []) - ->pluck('id') - ->transform(fn ($id) => ['group_id' => $id, 'strategy_id' => $strategy->id]) - ->toArray() - ); + $strategy->groups()->attach($validated['groups']); }); return $this->success('创建成功'); } @@ -60,18 +52,7 @@ class StrategyController extends Controller $strategy->fill($request->validated()); DB::transaction(function () use ($strategy, $validated) { $strategy->save(); - $strategy->groups->each(function (Group $group) { - /** @var Pivot $pivot */ - $pivot = $group->pivot; - $pivot->delete(); - }); - DB::table('group_strategy')->insert( - Group::query() - ->whereIn('id', $validated['groups'] ?: []) - ->pluck('id') - ->transform(fn ($id) => ['group_id' => $id, 'strategy_id' => $strategy->id]) - ->toArray() - ); + $strategy->groups()->sync($validated['groups']); }); return $this->success('保存成功'); } diff --git a/app/Models/Strategy.php b/app/Models/Strategy.php index cdb13835..adb46e4c 100644 --- a/app/Models/Strategy.php +++ b/app/Models/Strategy.php @@ -66,9 +66,12 @@ class Strategy extends Model (new Filesystem())->link($target, $symlink); } // 是否需要移除旧的符号链接 - $oldSymlink = self::getRootPath($strategy->getOriginal('configs')['url']); - if ($oldSymlink != $symlink) { - @unlink($oldSymlink); + $url = $strategy->getOriginal('configs')['url'] ?? ''; + if ($url) { + $oldSymlink = self::getRootPath($url); + if ($oldSymlink != $symlink) { + @unlink($oldSymlink); + } } } });