Comment ajuster le nombre d'objets créés dans Sequence (Laravel 8)
P粉043566314
P粉043566314 2023-09-04 10:08:32
0
1
517
<p>J'essaie de créer 30 actualités à l'aide de Seeder et Factory. Mais je dois créer 10 nouvelles avec une valeur de champ non nulle <code>published_at</code>(Carbon) et d'autres nouvelles avec une valeur aléatoire (Carbon/NULL). </p> <p>Dans la documentation, j'ai vu un exemple de ceci, qui créait 5 enregistrements avec la valeur <code>admin (Y)</code>, et 5 autres enregistrements avec la valeur <code> )</code>. </p> <pre class="brush:php;toolbar:false;">User::factory() ->compte(10) ->état (nouvelle séquence ( ['admin' => 'Y'], ['admin' => 'N'], )) ->create();</pre> <p>Jusqu'à présent, j'utilise ce code mais je n'arrive pas à comprendre comment ajouter le nombre d'enregistrements avec une valeur de paramètre spécifique <code>published_at</code>. Par exemple, utilisez Carbon pour 10 éléments et NULL pour 20 éléments. </p> <pre class="brush:php;toolbar:false;">/**ArticleSeeder*/ Article ::usine() ->compte(30) ->état (nouvelle séquence ([ 'published_at' => Factory::create()->dateTimeBetween( maintenant()->startOfMonth(), maintenant()->endOfMonth() ), ])) ->create();</pre></p>
P粉043566314
P粉043566314

répondre à tous(1)
P粉957723124

Dans une fermeture de séquence, vous avez accès à la propriété $index, qui contient le nombre d'itérations dans la séquence jusqu'à présent.

Voici la logique la plus simple que vous pouvez utiliser pour obtenir les résultats souhaités.

Article::factory()
->count(30)
->sequence(fn ($sequence) => [
    'published_at' => $sequence->index < 10
                      ?  Factory::create()->dateTimeBetween(
                             now()->startOfMonth(),
                             now()->endOfMonth()
                         );
                      : null
])
->create();
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!