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); + } } } });