findOrFail($id); $namingRule = NamingRule::query()->findOrFail($namingRuleId); // 子孙均需更新 DB::transaction(function () use ($folder, $namingRule) { Folder::query() ->where('path', 'like', $folder->path . '%') ->update(['naming_rule_id' => $namingRule->id]); File::query() ->join('folders', 'files.folder_id', '=', 'folders.id') ->where('folders.path', 'like', $folder->path . '%') ->update(['files.naming_rule_id' => $namingRule->id]); }); } }