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
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>
Comment ça marche ?
replicate()
crée un nouveau modèle en copiant les données du modèle d'origine.title
, status
etc.save()
.2. Réplication
en excluant certains champs La méthodereplicate()
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>
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>
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>
5. Réplication
en excluant les champs spécifiés Pour copier des champs autres que le champid
:
<code class="language-php">use App\Models\Post; $post = Post::find(1); // পোস্ট রিপ্লিকেট করা $newPost = $post->replicate(); // সম্পর্কিত মন্তব্য কপি করা $newPost->comments = $post->comments; $newPost->save();</code>
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!