Maison > base de données > tutoriel mysql > Laravel Eloquent ORM dans les modèles de réplication partielle Bangla)

Laravel Eloquent ORM dans les modèles de réplication partielle Bangla)

DDD
Libérer: 2025-01-16 20:14:15
original
536 Les gens l'ont consulté

Laravel Eloquent ORM in Bangla Part-Replicating Models)

Les

Les Modèles de réplication de Laravel Eloquent peuvent créer un nouvel enregistrement en utilisant tout ou partie des données d'un modèle. Il permet de faire une semi-copie sans réinsérer les données précédentes.

Cela peut être fait en utilisant la méthode replicate() de Laravel. Voici quelques exemples :

1. Réplication du modèle à l'aide de la replicate() méthode

La méthode

replicate() crée une copie du modèle, mais omet les id et timestamps du modèle (sauf si vous les enregistrez). Vous pouvez également répliquer des champs spécifiques.

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

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

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

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

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

Comment ça marche ?

    La méthode
  1. replicate() crée un nouveau modèle en copiant les données du modèle d'origine.
  2. Vous pouvez définir de nouvelles données, telles que title, status etc.
  3. Une nouvelle copie est enregistrée dans la base de données à l'aide de la méthode
  4. save().

2. Réplication

en excluant certains champs La méthode

replicate() peut être répliquée en omettant des champs spécifiques à l'aide de .except() ou .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>
Copier après la connexion
Copier après la connexion

De cette façon, d'autres données peuvent être copiées sauf created_at et updated_at.

3. Réplication du modèle relationnel

Si un modèle est lié à un autre modèle (un à plusieurs, plusieurs à plusieurs), alors ces modèles associés peuvent également être copiés. Par exemple, si une publication contient de nombreux commentaires :

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

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

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

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

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

Cela ajoutera tous les commentaires de la publication d'origine au nouveau message.

4. Réplication en cascade (Réplication en cascade)

Utilisez la réplication en cascade pour répliquer automatiquement les modèles associés.

<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>
Copier après la connexion
Copier après la connexion

5. Réplication

en excluant les champs spécifiés Pour copier des champs autres que le champ

id :

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

$post = Post::find(1);

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

// সম্পর্কিত মন্তব্য কপি করা
$newPost->comments = $post->comments;

$newPost->save();</code>
Copier après la connexion

6. replicate() et Validation

replicate() Applique la règle de validation du modèle d'origine au nouveau modèle.

Ces exemples montrent diverses utilisations de la méthode replicate(). Ceux-ci peuvent être modifiés selon vos besoins.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal