Laravel Eloquent의 Replicating Models는 모델 데이터의 전부 또는 일부를 사용하여 새로운 기록을 생성할 수 있습니다. 이전 데이터를 다시 삽입하지 않고 반복사를 할 때 사용합니다.
이는 Laravel의 replicate()
메소드를 사용하여 수행할 수 있습니다. 다음은 몇 가지 예입니다.
1. replicate()
메서드
replicate()
메서드는 모델의 복사본을 생성하지만 모델의 id
및 timestamps
을 생략합니다(저장하지 않는 한). 특정 필드를 복제할 수도 있습니다.
<code class="language-php">use App\Models\Post; $post = Post::find(1); // মূল পোস্ট খুঁজে বের করা // পোস্ট রিপ্লিকেট করা $newPost = $post->replicate(); // অতিরিক্ত ক্ষেত্রের মান পরিবর্তন $newPost->title = 'নতুন পোস্ট'; $newPost->status = 'ড্রাফট'; // নতুন পোস্ট সংরক্ষণ $newPost->save();</code>
어떻게 작동하나요?
replicate()
메소드는 원본 모델의 데이터를 복사하여 새로운 모델을 생성합니다.title
, status
등 새로운 데이터를 설정할 수 있습니다.save()
메서드를 사용하여 새 복사본이 데이터베이스에 저장됩니다.2. 일부 필드를 제외하고
복제 중replicate()
메서드는 .except()
또는 .makeHidden()
을 사용하여 특정 필드를 생략하여 복제할 수 있습니다.
<code class="language-php">use App\Models\Post; $post = Post::find(1); // `created_at` এবং `updated_at` ক্ষেত্র বাদ দিয়ে রিপ্লিকেট করা $newPost = $post->replicate()->makeHidden(['created_at', 'updated_at']); $newPost->save();</code>
이렇게 하면 created_at
, updated_at
을 제외한 다른 데이터를 복사할 수 있습니다.
3. 관계형 모델 복제
모델이 다른 모델과 관련되어 있는 경우(일대다, 다대다) 해당 관련 모델도 복사할 수 있습니다. 예를 들어 게시물에 댓글이 많은 경우:
<code class="language-php">use App\Models\Post; $post = Post::find(1); // মূল পোস্ট খুঁজে বের করা // পোস্ট রিপ্লিকেট করা $newPost = $post->replicate(); // অতিরিক্ত ক্ষেত্রের মান পরিবর্তন $newPost->title = 'নতুন পোস্ট'; $newPost->status = 'ড্রাফট'; // নতুন পোস্ট সংরক্ষণ $newPost->save();</code>
원래 게시물의 모든 댓글이 새 게시물에 추가됩니다.
4. 계단식 복제(다단계 복제)
다단계 복제를 사용하여 관련 모델을 자동으로 복제합니다.
<code class="language-php">use App\Models\Post; $post = Post::find(1); // `created_at` এবং `updated_at` ক্ষেত্র বাদ দিয়ে রিপ্লিকেট করা $newPost = $post->replicate()->makeHidden(['created_at', 'updated_at']); $newPost->save();</code>
5. 지정된 필드를 제외하고
복제 중id
필드 이외의 필드를 복사하려면:
<code class="language-php">use App\Models\Post; $post = Post::find(1); // পোস্ট রিপ্লিকেট করা $newPost = $post->replicate(); // সম্পর্কিত মন্তব্য কপি করা $newPost->comments = $post->comments; $newPost->save();</code>
6. replicate()
및 검증
replicate()
원본 모델의 유효성 검사 규칙을 새 모델에 적용합니다.
이 예에서는 replicate()
메서드의 다양한 용도를 보여줍니다. 필요에 따라 수정할 수 있습니다.
위 내용은 방글라어 부분 복제 모델의 Laravel Eloquent ORM)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!