Laravel Eloquent の モデルの複製 は、モデルのデータのすべてまたは一部を使用して新しいレコードを作成できます。 以前のデータを再挿入せずに半コピーを作成するために使用されます。
これは、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.リレーショナル モデルをレプリケートしています
モデルが別のモデルに関連している場合 (1 対多、多対多)、それらの関連モデルもコピーできます。 たとえば、投稿に多くのコメントがある場合:
<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 in Bangla Part-Replicating Model)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。