Rumah >pangkalan data >tutorial mysql >Laravel Eloquent ORM dalam Model Mereplikasi Bahagian Bangla)

Laravel Eloquent ORM dalam Model Mereplikasi Bahagian Bangla)

DDD
DDDasal
2025-01-16 20:14:15536semak imbas

Laravel Eloquent ORM in Bangla Part-Replicating Models)

Laravel Eloquent Replikasi Model boleh mencipta rekod baharu menggunakan semua atau sebahagian daripada data model. Ia digunakan untuk membuat separuh salinan tanpa memasukkan semula data sebelumnya.

Ini boleh dilakukan menggunakan kaedah replicate() Laravel. Di bawah ialah beberapa contoh:

1. Meniru model menggunakan kaedah replicate()

Kaedah

replicate() mencipta salinan model, tetapi meninggalkan id dan timestamps model (melainkan anda menyimpannya). Anda juga boleh meniru medan tertentu.

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

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

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

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

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

Bagaimana ia berfungsi?

    Kaedah
  1. replicate() mencipta model baharu dengan menyalin data daripada model asal.
  2. Anda boleh menetapkan data baharu, seperti title, status dsb.
  3. Salinan baharu disimpan ke pangkalan data menggunakan kaedah
  4. save().

2. Meniru

tidak termasuk beberapa medan Kaedah

replicate() boleh direplikasi dengan meninggalkan medan tertentu menggunakan .except() atau .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>

Dengan cara ini data lain boleh disalin kecuali created_at dan updated_at.

3. Meniru model hubungan

Jika model berkaitan dengan model lain (Satu-ke-Banyak, Banyak-ke-Banyak), maka model yang berkaitan itu juga boleh disalin. Contohnya, jika siaran mempunyai banyak ulasan:

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

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

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

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

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

Ini akan menambahkan semua ulasan pada siaran asal pada siaran baharu.

4. Replikasi Lata (Replikasi Lata)

Gunakan replikasi lata untuk meniru model berkaitan secara automatik.

<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. Meniru

tidak termasuk medan yang ditentukan Untuk menyalin medan selain daripada medan

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() dan Pengesahan

replicate() Menggunakan peraturan pengesahan model asal pada model baharu.

Contoh ini menunjukkan pelbagai kegunaan kaedah replicate(). Ini boleh diubah suai mengikut keperluan anda.

Atas ialah kandungan terperinci Laravel Eloquent ORM dalam Model Mereplikasi Bahagian Bangla). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn