>데이터 베이스 >MySQL 튜토리얼 >방글라어 부분 복제 모델의 Laravel Eloquent ORM)

방글라어 부분 복제 모델의 Laravel Eloquent ORM)

DDD
DDD원래의
2025-01-16 20:14:15536검색

Laravel Eloquent ORM in Bangla Part-Replicating Models)

Laravel Eloquent의 Replicating Models는 모델 데이터의 전부 또는 일부를 사용하여 새로운 기록을 생성할 수 있습니다. 이전 데이터를 다시 삽입하지 않고 반복사를 할 때 사용합니다.

이는 Laravel의 replicate() 메소드를 사용하여 수행할 수 있습니다. 다음은 몇 가지 예입니다.

1. replicate() 메서드

를 사용하여 모델 복제

replicate() 메서드는 모델의 복사본을 생성하지만 모델의 idtimestamps을 생략합니다(저장하지 않는 한). 특정 필드를 복제할 수도 있습니다.

<code class="language-php">use App\Models\Post;

$post = Post::find(1); // মূল পোস্ট খুঁজে বের করা

// পোস্ট রিপ্লিকেট করা
$newPost = $post->replicate();

//  অতিরিক্ত ক্ষেত্রের মান পরিবর্তন
$newPost->title = 'নতুন পোস্ট';
$newPost->status = 'ড্রাফট';

// নতুন পোস্ট সংরক্ষণ
$newPost->save();</code>

어떻게 작동하나요?

  1. replicate() 메소드는 원본 모델의 데이터를 복사하여 새로운 모델을 생성합니다.
  2. title, status 등 새로운 데이터를 설정할 수 있습니다.
  3. 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.