Bladeren bron

增加判断-clone

rkljw 4 maanden geleden
bovenliggende
commit
c0a40df2c9
1 gewijzigde bestanden met toevoegingen van 34 en 24 verwijderingen
  1. 34 24
      app/JsonRpc/WebsiteService.php

+ 34 - 24
app/JsonRpc/WebsiteService.php

@@ -3539,36 +3539,46 @@ class WebsiteService implements WebsiteServiceInterface
             $originalCategories = WebsiteCategory::where('website_id', $data['website_id'])->get();
             // 克隆网站后的新 ID(假设 $clone_website->id 已存在)
             $newWebsiteId = $clone_website->id;
-            // 遍历每条记录并克隆
-            foreach ($originalCategories as $category) {
-                // 使用 replicate() 方法创建模型副本(不包含主键)
-                $clonedCategory = $category->replicate();
-                // 修改外键字段指向新网站 ID
-                $clonedCategory->website_id = $newWebsiteId;
-                // 保存克隆后的记录到数据库
-                $clonedCategory->save();
+            if($originalCategories && count($originalCategories)>0){
+                // 遍历每条记录并克隆
+                foreach ($originalCategories as $category) {
+                    // 使用 replicate() 方法创建模型副本(不包含主键)
+                    $clonedCategory = $category->replicate();
+                    // 修改外键字段指向新网站 ID
+                    $clonedCategory->website_id = $newWebsiteId;
+                    // 保存克隆后的记录到数据库
+                    $clonedCategory->save();
+                }
             }
+
             //克隆友情链接 Link 对应的是多个
             $originalLinks = Link::where('website_id', $data['website_id'])->get();
-            foreach ($originalLinks as $link) {
-                // 使用 replicate() 方法创建模型副本(不包含主键)
-                $clonedLink = $link->replicate();
-                // 修改外键字段指向新网站 ID
-                $clonedLink->website_id = $newWebsiteId;
-                // 保存克隆后的记录到数据库
-                $clonedLink->save();
+            if($originalLinks && count($originalLinks)>0){
+                foreach ($originalLinks as $link) {
+                    // 使用 replicate() 方法创建模型副本(不包含主键)
+                    $clonedLink = $link->replicate();
+                    // 修改外键字段指向新网站 ID
+                    $clonedLink->website_id = $newWebsiteId;
+                    // 保存克隆后的记录到数据库
+                    $clonedLink->save();
+                }
             }
             //克隆网站底部信息 footer_category 表 和footer_content 表 footer_category.id = footer_content.fcat_id 都是一对多关系
             $originalFooterCategories = FooterCategory::where('website_id', $data['website_id'])->get();
-            foreach ($originalFooterCategories as $footerCategory) {
-                $clonedFooterCategory = $footerCategory->replicate();
-                $clonedFooterCategory->website_id = $newWebsiteId;
-                $clonedFooterCategory->save();
-                $originalFooterContents = FooterContent::where('fcat_id', $footerCategory->id)->get();
-                foreach ($originalFooterContents  as $footerContent) {
-                    $clonedFooterContent = $footerContent->replicate();
-                    $clonedFooterContent->fcat_id = $clonedFooterCategory->id;
-                    $clonedFooterContent->save();
+            if($originalFooterCategories && count($originalFooterCategories)>0){
+                foreach ($originalFooterCategories as $footerCategory) {
+                    $clonedFooterCategory = $footerCategory->replicate();
+                    $clonedFooterCategory->website_id = $newWebsiteId;
+                    $clonedFooterCategory->save();
+                    $originalFooterContents = FooterContent::where('fcat_id', $footerCategory->id)->get();
+                    if($originalFooterContents && count($originalFooterContents)>0){
+                        foreach ($originalFooterContents  as $footerContent) {
+                            $clonedFooterContent = $footerContent->replicate();
+                            $clonedFooterContent->fcat_id = $clonedFooterCategory->id;
+                            $clonedFooterContent->save();
+                        }
+                    }
+
                 }
             }
             Db::commit();