ホームページ > データベース > mysql チュートリアル > Laravel Eloquent ORM in Bangla Part-Replicating Model)

Laravel Eloquent ORM in Bangla Part-Replicating Model)

DDD
リリース: 2025-01-16 20:14:15
オリジナル
535 人が閲覧しました

Laravel Eloquent ORM in Bangla Part-Replicating Models)

Laravel Eloquent の モデルの複製 は、モデルのデータのすべてまたは一部を使用して新しいレコードを作成できます。 以前のデータを再挿入せずに半コピーを作成するために使用されます。

これは、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. titlestatusなどの新しいデータを設定できます。
  3. 新しいコピーは、
  4. 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_atupdated_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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート